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

> ТАНКИ, одновременное выполнение действий
blackhard
сообщение 15.02.2008 0:08
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 15.02.2008 19:12
Сообщение #2


Гуру
*****

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

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


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

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


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

 



- Текстовая версия 18.07.2025 8:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"