Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 5

Пятнашки. Анимация движения кнопок

20.01.2015, 20:19. Показов 1893. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Работаю над программой пятнашки, написал самый элементарный вариант с подменой кнопки на shape.
В итоге программа оказалась слишком простой, хочу довести ее до ума и оформить соответствующе.



Одна из основных идей - анимация передвижения кнопки с помощью таймера. Читал материал, принцип понял, а совместить не получается.

Будьте добры, предложите ваши идеи, где игру еще можно доработать? Код прилагается.

Заранее спасибо!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Dim L As Long, T As Long, K As Long
 
Private Sub Command1_Click(Index As Integer)
L = Command1(Index).Left
T = Command1(Index).Top
 
If Shape1.Left - 1080 = L And Shape1.Top = T Then
K = Command1(Index).Left
Command1(Index).Left = Shape1.Left
Shape1.Left = K
End If
 
If Shape1.Left + 1080 = L And Shape1.Top = T Then
K = Command1(Index).Left
Command1(Index).Left = Shape1.Left
Shape1.Left = K
End If
 
If Shape1.Top - 1080 = T And Shape1.Left = L Then
K = Command1(Index).Top
Command1(Index).Top = Shape1.Top
Shape1.Top = K
End If
 
If Shape1.Top + 1080 = T And Shape1.Left = L Then
K = Command1(Index).Top
Command1(Index).Top = Shape1.Top
Shape1.Top = K
End If
End Sub
 
Function shake()
Randomize
For i = 0 To 500
d = Fix(Rnd * 14)
q = Command1(d).Left
w = Command1(d).Top
e = Shape1.Left
r = Shape1.Top
 
Command1(d).Left = e
Command1(d).Top = r
Shape1.Left = q
Shape1.Top = w
Next i
End Function
 
Private Sub Command2_Click()
shake
End Sub
 
Private Sub Form_Load()
For i = 0 To 14
Command1(i).Caption = i + 1
Next i
shake
End Sub
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2015, 20:19
Ответы с готовыми решениями:

Анимация движения самолета по небу
помогите составить программу включающую в себя: 1) фон (небо, деревья, дорога, дома) 2) движущийся объект (автомобиль, самолёт)

Направления движения движения кнопок в игре пятнашки
Ребят подскажите как можно задать перемещение кнопок . по какому признаку или действию Заранее всем спасибо !!!

Написать програму для движения мерцающего круга по эллипсу (анимация движения)
Добрый день,передо мной стоит задача : Написать програму для движения мерцающего круга по эллипсу.Проблема в том,что не могу сообразить как...

5
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 5
21.01.2015, 17:25  [ТС]
Ребята, подскажите как здесь использовать таймер для анимации? До завтра надо позарез.
Заранее спасибо!
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2015, 18:07
Назначение Top и Left вынести в отдельную процедуру и там двигать не сразу на всё расстояние, а в цикле на какой-то шаг
0
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 5
21.01.2015, 18:15  [ТС]
Visual Basic
1
2
L = Command1(Index).Left
T = Command1(Index).Top
Вынести это из нажатия на кнопку и включить в процедуру таймера?

Если не сложно, покажите на простом примере и направьте в нужную сторону, буду крайне благодарен.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2015, 19:14
Лучший ответ Сообщение было отмечено goodfella4 как решение

Решение

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Option Explicit
Dim Q, W
Dim L, T, N, K
 
Private Sub Комманда1_Click(Index As Integer)
L = Комманда1(Index).Left
T = Комманда1(Index).Top
 
Q = Index
 
  If (Shape1.Top - 840 = T Or Shape1.Top + 840 = T) And Shape1.Left = L Then
    W = 0
    N = Комманда1(Index).Top
    K = Shape1.Top
   Часы1.Enabled = True
 End If
 If (Shape1.Left - 960 = L Or Shape1.Left + 960 = L) And Shape1.Top = T Then
    W = 1
    N = Комманда1(Index).Left
        K = Shape1.Left
   Часы1.Enabled = True
 End If
End Sub
 
Private Sub Часы1_Timer()
Dim d
If Len(W) = 0 Then Часы1.Enabled = False
d = IIf(N > K, 10, -10)
 Select Case W
  Case 0
        Комманда1(Q).Top = Комманда1(Q).Top - d
        Shape1.Top = Shape1.Top + d
        If Комманда1(Q).Top = K Then Часы1.Enabled = False
 Case Else
         Комманда1(Q).Left = Комманда1(Q).Left - d
        Shape1.Left = Shape1.Left + d
        If Комманда1(Q).Left = K Then Часы1.Enabled = False
 End Select
End Sub
 
 
Function shake()
Dim i, d, Q, W, e, r
Randomize
For i = 0 To 500
d = Fix(Rnd * 14)
Q = Комманда1(d).Left
W = Комманда1(d).Top
e = Shape1.Left
r = Shape1.Top
 
Комманда1(d).Left = e
Комманда1(d).Top = r
Shape1.Left = Q
Shape1.Top = W
Next i
End Function
 
Private Sub Command2_Click()
shake
End Sub
 
Private Sub Form_Load()
Dim i
For i = 0 To 14
Комманда1(i).Caption = i + 1
Next i
shake
End Sub

1
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 5
21.01.2015, 19:23  [ТС]
Алекс, огромное человеческое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2015, 19:23
Помогаю со студенческими работами здесь

Игра пятнашки на C#: как обеспечить перемешивание кнопок
Добрый день, уважаемые господа. Наткнулся я на один интересный код, авторство которого увы не известно, однако дабы была...

Игра пятнашки, как проверить где пустое поле для перемещения соседних кнопок
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Движения кнопок в TableLayoutPanel
Как двигать кнопку из одного столбца к другому в TableLayoutPanel.

Анимация движения
Подскажите, как создать анимацию движущегося человечка на Windows Forms без OpenGL и прочего

Движения и анимация
Ребят, у меня есть не большая просьба- можете подкинуть мне "пару" строчек скриптика. В общем, нужно, чтобы персонаж двигался до указанного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru