![]() |
![]() |
blackhard |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: ![]() ![]() ![]() |
хочу написать простую игру (дано допустим 2 танка 1 управляется пользователем а 2 компьютером ) в ходе написания возник ряд вопросов 1) как сделать чтобы одновременно выполнялось несколько действий допустим я стреляю и пока летит снаряд я хочу переместить свой танк а враг может попытаться увернутся от снаряда.на данном этапе написания когда я стреляю я не могу переместить танк пока не далетит снаряд.2)как установить границы экрана чтобы танк не заезжал за границы и вообще как разграничить экран я пробовал спомощью setviewport но чето ничего не получилось.
вот то что я уже написал набрОсал танки 1им из них можно управлять стрелками и стрелять на пробел выход на esc.танки я нарисовал линиями чтоб легче было работать с координатами program igra;объяснити хоть на словах как сделать то о чем я написал.спасибо! |
![]() ![]() |
spill |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Да пожалуйста, если что, обращайся еще.
Кстати, если делать вообще по науке, то нужно вот как: Для каждого объекта кроме координат X и Y должна быть пара DX и DY, которой задается вектор перемещения объекта. Тогда при анализе клавы или генерации очередного хода противника изменяешь DX или DY (Если ход вверх, то DX = 0, DY = -5; Если вправо, то DX = 5, DY = 0 и т.д.). А потом пересчитываешь координаты X := X + DX; Y := Y + DY. Это позволит сделать анализ границ. То есть, пересчитывать координаты нужно только в том случаи, если следующий ход попадает в границы экрана (псевдокод): Код If X + DX больше 0 и меньше 640 Then X := X + DX If Y + DY больше 0 и меньше 480 Then Y := Y + DY Также, используя этот способ, можно, например, добавить препятствия, призы и пр. |
blackhard |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: ![]() ![]() ![]() |
Да пожалуйста, если что, обращайся еще. Кстати, если делать вообще по науке, то нужно вот как: Для каждого объекта кроме координат X и Y должна быть пара DX и DY, которой задается вектор перемещения объекта. Тогда при анализе клавы или генерации очередного хода противника изменяешь DX или DY (Если ход вверх, то DX = 0, DY = -5; Если вправо, то DX = 5, DY = 0 и т.д.). А потом пересчитываешь координаты X := X + DX; Y := Y + DY. Это позволит сделать анализ границ. То есть, пересчитывать координаты нужно только в том случаи, если следующий ход попадает в границы экрана (псевдокод): Код If X + DX больше 0 и меньше 640 Then X := X + DX If Y + DY больше 0 и меньше 480 Then Y := Y + DY Также, используя этот способ, можно, например, добавить препятствия, призы и пр. спасибо сделал таким способом с границами теперь никаких проблем ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 8:14 |