Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 11:03   #1
TheHolyDemon
Новичок
Джуниор
 
Регистрация: 11.05.2009
Сообщений: 2
Злость Тетрис на VBA

Люди добрые, помогите.
Задали написать тетрис, крайне простой. Нужно только организовать движение влево-вправо,чтобы опускался, и стирал строку при ее заполнении. Всего две-фигуры-горизонтальная и вертикальная палочка.
Так вот, у меня проблема как раз со сдвигом влево-вправо. Вроде можно как-то сделать через форму, но как не знаю.
Подскажите, как задать эти самые сдвиги, при условии,что еще должно вниз двигаться

Первый исходник
Dim x As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'коды клавиш - стрелок

Sub fig()
x = Rnd()
If x = 0 Then Call gor Else Call ver
End Sub


Private Sub gor()

Cells(1, 1).Interior.ColorIndex = 3
Cells(1, 2).Interior.ColorIndex = 3
Cells(1, 3).Interior.ColorIndex = 3

For i = 2 To 20
PauseTime = 0.25
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Finish = Timer


If (GetAsyncKeyState(vbKeyRight)) Then
Cells(i, c + 1).Interior.ColorIndex = 3
Cells(i - 1, c + 1).Interior.ColorIndex = xlNone
Cells(i, c + 2).Interior.ColorIndex = 3
Cells(i - 1, c + 2).Interior.ColorIndex = xlNone
Cells(i, c + 3).Interior.ColorIndex = 3
Cells(i - 1, c + 3).Interior.ColorIndex = xlNone
c = c + 1
End If
If Cells(i, 1).Interior.ColorIndex = xlNone Or Cells(i, 2).Interior.ColorIndex = xlNone Or Cells(i, 3).Interior.ColorIndex = xlNone Then
Cells(i, 1).Interior.ColorIndex = 3
Cells(i - 1, 1).Interior.ColorIndex = xlNone
Cells(i, 2).Interior.ColorIndex = 3
Cells(i - 1, 2).Interior.ColorIndex = xlNone
Cells(i, 3).Interior.ColorIndex = 3
Cells(i - 1, 3).Interior.ColorIndex = xlNone

End If

Next i

End Sub

Private Sub ver()
Cells(1, 2).Interior.ColorIndex = 2
Cells(2, 2).Interior.ColorIndex = 2
Cells(3, 2).Interior.ColorIndex = 2

For j = 2 To 18
PauseTime = 0.25
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Finish = Timer

If Cells(j + 2, 2).Interior.ColorIndex = xlNone Then
Cells(j, 2).Interior.ColorIndex = 3
Cells(j - 1, 2).Interior.ColorIndex = xlNone
Cells(j + 1, 2).Interior.ColorIndex = 3
Cells(j + 2, 2).Interior.ColorIndex = 3

End If
Next j


End Sub


Второй исходник
Private Sub UserForm_Activate()
For y = 1 To 24
PauseTime = 0.3
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Finish = Timer

Cells(y, 7).Interior.ColorIndex = 3
Cells(y - 1, 7).Interior.ColorIndex = xlNone
Next y
End Sub


Первый исходник сделан без формы, второй с формой-но результата на обоих никакого.
Подскажите, где неправильно мыслю, плиииз
TheHolyDemon вне форума Ответить с цитированием
Старый 30.05.2009, 11:16   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А если игру на форму перенести,зто возможно,или необходимо на листе.Если на форме можно-я напишу
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 30.05.2009, 11:32   #3
TheHolyDemon
Новичок
Джуниор
 
Регистрация: 11.05.2009
Сообщений: 2
По умолчанию

Ну можно и на форме, просто я никак не могу понять, как поворот нормально сделать
TheHolyDemon вне форума Ответить с цитированием
Старый 30.05.2009, 11:36   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А чем Вас не устраивают готовые реализации Тетриса под Excel?

http://www.df.ru/~karpov/Files/Games/Tetris.zip
http://sergiex.mylivepage.ru/file/3/313

Врочем,я встречал более удачные реализации, правда, не помню, где...
Поищите здесь: http://yandex.ru/yandsearch?p=3&text...%81&clid=14585
EducatedFool вне форума Ответить с цитированием
Старый 30.05.2009, 11:37   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Движение Image в лево, в право , в низ. И при помощи мышки
Вложения
Тип файла: rar Движение.rar (19.2 Кб, 78 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать тетрис! sid Gamedev - cоздание игр: Unity, OpenGL, DirectX 21 06.05.2013 20:32
Змейка, тетрис, пинг-понг....и т.д. А где найти исходники? Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 05.07.2010 14:37
Тетрис! Логика и возможности. Iceman Общие вопросы Delphi 4 04.01.2009 01:56
Старый добрый тетрис Format C: Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 05.07.2007 16:02
массив и тетрис sid Паскаль, Turbo Pascal, PascalABC.NET 2 04.04.2007 14:41