IPB
ЛогинПароль:

> ТАНКИ, одновременное выполнение действий
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


хочу написать простую игру (дано допустим 2 танка 1 управляется пользователем а 2 компьютером ) в ходе написания возник ряд вопросов 1) как сделать чтобы одновременно выполнялось несколько действий допустим я стреляю и пока летит снаряд я хочу переместить свой танк а враг может попытаться увернутся от снаряда.на данном этапе написания когда я стреляю я не могу переместить танк пока не далетит снаряд.2)как установить границы экрана чтобы танк не заезжал за границы и вообще как разграничить экран я пробовал спомощью setviewport но чето ничего не получилось.

вот то что я уже написал набрОсал танки 1им из них можно управлять стрелками и стрелять на пробел выход на esc.танки я нарисовал линиями чтоб легче было работать с координатами
program igra;
uses graph,crt;
var
ch:char;
tx,ty,tx2,ty2:integer;
d,m,i,x,y,k:integer;
procedure vistrel;
var
vx,vy,i,k:integer;
begin
vx:=tx;
vy:=ty;
for i:=1 to 640-(vx+60) do begin
setcolor(15);
circle(vx+64+i,vy+23,3);
setcolor(0);
circle(vx+64+i-1,vy+23,3);
delay(200);
if (vy+23>=ty2) and (vy+23<=ty+48) then
circle(213,120,2);
end;
setcolor(15);
end;
begin
d:=detect;
initgraph(d,m,'e:\tp7.1\bgi');
tx:=1;
ty:=120;
tx2:=610;
ty2:=120;
{kab}
repeat
{\\\\\\\\\\\\\\\\\tank22\\\\\\\\\\\\\\\\\\\\\ }
{kab}
line(tx2,ty2,tx2+23,ty2);
line(tx2+23,ty2,tx2+23,ty2+48);
line(tx2,ty2+48,tx2+23,ty2+48);
line(tx2,ty2,tx2,ty2+48);
arc(tx2+11,ty2+6,23,154,13);
arc(tx2+11,ty2+42,206,337,13);
{pil}
line(tx2+10,ty2+9,tx2+10,ty2+39);
line(tx2+17,ty2+9,tx2+10,ty2+9);
line(tx2+10,ty2+39,tx2+17,ty2+39);
{puh}
line(tx2,ty2+12,tx2-12,ty2+12);
line(tx2,ty2+36,tx2-12,ty2+36);
line(tx2-12,ty2+12,tx2-12,ty2+36);
{dulo}
line(tx2-12,ty2+26,tx2-29,ty2+26);
line(tx2-29,ty2+20,tx2-29,ty2+28);
line(tx2-12,ty2+22,tx2-29,ty2+22);
{gluh}
line(tx2-29,ty2+20,tx2-36,ty2+20);
line(tx2-29,ty2+28,tx2-36,ty2+28);
line(tx2-36,ty2+20,tx2-36,ty2+28);
{\\\\\\\\\\\=tank\\\\\\\\\\\\\\\\}
line(tx,ty,tx+23,ty);
line(tx+23,ty,tx+23,ty+48);
line(tx,ty+48,tx+23,ty+48);
line(tx,ty,tx,ty+48);
arc(tx+11,ty+6,23,154,13);
arc(tx+11,ty+42,206,337,13);
{pil}
line(tx+17,ty+9,tx+17,ty+39);
line(tx+10,ty+9,tx+17,ty+9);
line(tx+10,ty+39,tx+17,ty+39);
{puh}
line(tx+23,ty+12,tx+35,ty+12);
line(tx+23,ty+36,tx+35,ty+36);
line(tx+35,ty+12,tx+35,ty+36);
line(tx+35,ty+22,tx+53,ty+22);
{dulo}
line(tx+35,ty+26,tx+53,ty+26);
line(tx+53,ty+20,tx+53,ty+28);
{gluh}
line(tx+53,ty+20,tx+60,ty+20);
line(tx+53,ty+28,tx+60,ty+28);
line(tx+60,ty+20,tx+60,ty+28);
ch:=readkey;
case ch of
#72:ty:=ty-5;
#75:tx:=tx-5;
#77:tx:=tx+5;
#80:ty:=ty+5;
#32:vistrel;
#27:halt;
end;{case}
cleardevice;
until ch=#27;
readln;
closegraph;
end.
объяснити хоть на словах как сделать то о чем я написал.спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ты бы хоть, прежде чем писать, почитал темы, находящиеся рядом. На многие твои вопросы там уже есть ответы.
Любая игра строится по единому шаблону: все действия выполняются в основном игровом цикле. Сам цикл может организовываться по-разному, скажем, в DOS и Windows, но сути это не меняет.
В цикле определяется состояние органов управления (нажата клавиша, передвинута мышь, отклонен джойстик...), текущее время и на основании этого состояние системы изменяется по определенным формулам. Например, если скорость объекта (Vx,Vy) а координаты (X,Y), то через время dt, прошедшее с предыдущей отрисовки кадра, новые координаты станут (X+Vx*dt, Y+Vy*dt). При необходимости создаются новые объекты (пуля при выстреле, новый враг ...) и уничтожаются старые (сначала пуля при попадании, а затем и враг, в которого она попала).
Анализируется состояние каждого объекта (для обеспечения возможности перебора ведется список объектов). Когда посчитано новое состояние, оно отображается на экране.
Затем цикл повторяется.
Пример можно посмотреть несколькими темами ниже: "про кораблики".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
blackhard   ТАНКИ   15.02.2008 4:08
spill   Игры так не пишут. В игре должен быть ОДИН цикл. В…   15.02.2008 18:12
andriano   Ты бы хоть, прежде чем писать, почитал темы, наход…   15.02.2008 23:12
blackhard   Ты бы хоть, прежде чем писать, почитал темы, нахо…   16.02.2008 0:01
blackhard   И опять мне нужна помощь. теперь проблема с ИИ ну …   19.02.2008 3:57
spill   Вот твои ошибки: 1. Используй Randomize один раз в…   19.02.2008 17:34
blackhard   Вот твои ошибки: 1. Используй Randomize один раз …   20.02.2008 2:35
andriano   И вот еще что надо бы переделать. Анимация делает…   20.02.2008 13:16
spill   Да пожалуйста, если что, обращайся еще. Кстати, ес…   20.02.2008 16:03
blackhard   Да пожалуйста, если что, обращайся еще. Кстати, е…   20.02.2008 22:45
andriano   Именно с массивом. Прикинь, какая у твоего танка м…   20.02.2008 23:31
blackhard   Именно с массивом. Прикинь, какая у твоего танка …   20.02.2008 23:40
blackhard   Я решил переделать игру.Теперь обьекты у меня это …   23.03.2008 17:58
andriano   Поясни, пожалуйста, как именно ты стираешь изображ…   23.03.2008 21:11
blackhard   Поясни, пожалуйста, как именно ты стираешь изобра…   23.03.2008 21:28
andriano   Это я вижу. Но ты сам сказал, что это не работает.…   23.03.2008 22:36
blackhard   Это я вижу. Но ты сам сказал, что это не работает…   23.03.2008 23:31
andriano   Третий раз спрашиваю: как именно стираешь изображе…   24.03.2008 3:01
blackhard   Третий раз спрашиваю: как именно стираешь изображ…   24.03.2008 3:16
andriano   Дергается или мерцает? Если дергается, что-то не в…   25.03.2008 0:00
blackhard   Дергается или мерцает? Если дергается, что-то не …   25.03.2008 0:36
andriano   Только что разместил ссылки на статьи в соответств…   25.03.2008 0:49
blackhard   Теперь я решил сделать чтобы у меня там солдатики …   22.04.2008 17:57
renesko1   Попробуй сделать обьект солдат и метод paint Созда…   22.04.2008 21:32
blackhard   А можно както в подобной игре сделать нормальный з…   5.05.2008 16:43
andriano   Игра - имеется в виду под DOS?   5.05.2008 16:59
blackhard   Игра - имеется в виду под DOS? Ну да   5.05.2008 17:23
andriano   Пробежал глазами тему. "Нормальный звук…   5.05.2008 21:14


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 21:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name