![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.04.2009
Сообщений: 18
|
![]()
короче пишу игру "змейка" . осталось ток заставить звеюку двигаца.
вот часть кода в которой не хочит работать: Код:
(какбы всё компилируется ток змея не двигается. я не могу понять как заставить её двигаца) Последний раз редактировалось Stilet; 15.10.2009 в 13:16. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 18.09.2009
Сообщений: 38
|
![]()
Создавай таймер и перемещай в зависимости от направления движения. А при нажатии на клавиши меняй это направление.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.04.2009
Сообщений: 18
|
![]()
а поконкретней можна. пимерный код. просто мы еще такого не проходили.
Последний раз редактировалось vetalij; 15.10.2009 в 13:13. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.09.2009
Сообщений: 38
|
![]()
Я сейчас на работе, некогда. Вечерком или завтра могу полностью описать как я делал (правда я на Turbo C++ писал, но принцип перемещения и организации змейки так же подходит и сюда (и нравится мне
![]() |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
не вижу таймера и обработчиков нажатия кнопок
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 02.04.2009
Сообщений: 18
|
![]() |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
учтанови таймер
SetTimer(HWND hWnd,UINT_PTR nIDEvent,UINT uElapse,TIMERPROC lpTimerFunc); lpTimerFunc=NULL и в WndProc лови WM_TIMER, в конце работы программы убей таймер KillTimer(HWND hWnd,UINT_PTR uIDEvent); ps. Было бы неплохо увидеть, что из себя представляет твоя змейка (структурка какая или просто координаты на перемещение). Ну и чтобы змейка двигалась нужно изменять ее координаты в WM_TIMER и при нажатии кнопок-стрелок... |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 02.04.2009
Сообщений: 18
|
![]()
вот всё из файла .cpp
http://programmersforum.ru/attachmen...1&d=1255718991 |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
примерный план действий
![]() 0. #define ID_TIMER 1000 1. В InitInstance после создания окна установи таймер SetTimer(hWnd,ID_TIMER,200,NULL); , где 200 - время срабатывания в милисекундах, hWnd лучше передавать в InitInstance через параметр. 2. В WinMain перед return msg.wParam; таймер можно "убить" KillTimer(hWnd,ID_TIMER); 3. В WndProc ловим сообщения от таймера Код:
4. DrawField, я так понял рисует и игровое поле и змейку, а RECT rt - это координаты частей поля? тогда в WM_TIMER прописывай изменение величины rt в зависимости от текущщего направления движения змейки. Например: Код:
5. Для кнопок - тот же принцип Код:
Последний раз редактировалось counter; 16.10.2009 в 23:29. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 02.04.2009
Сообщений: 18
|
![]()
спс. буду пробовать.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите дописать БД | Лорд_Оледжан | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 30.05.2009 22:14 |
Дописать... | Lemo | Помощь студентам | 14 | 14.10.2008 20:49 |
Помогите дописать | ShnapS | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 28.05.2008 21:08 |
Помогите дописать прогу на делфи | fox7 | Помощь студентам | 3 | 16.06.2007 23:44 |