![]() |
![]() ![]() |
![]() |
1234 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Пожалуйста, подсобите написать программу. Суть её в следующем: снизу - пушка, сверху - летят предметы. Их нужно валить. В графическом режиме и попроще. Пушка стреляет и ходит вправо и влево. Сложность в том, что нужно начать. Как вообще называется эта игра. И никаких ньютонов и углов там недолжно быть. Фиг кто сделает эту прогу
Сообщение отредактировано: 1234 - 20.12.2006 19:12 |
ammaximus |
![]()
Сообщение
#2
|
![]() Ночной волк ![]() ![]() Группа: Пользователи Сообщений: 103 Пол: Мужской Репутация: ![]() ![]() ![]() |
Для начала распиши правила игры и примерную картинку игрового поля. Определись, будешь ли использовать ООП, какое управление, как выглядят объекты, типы движения, всякие зависимости и стрелочки и пость все сюда...
-------------------- Не думай о белой обезьяне.
|
arhimag |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сначала можно сделать управление с клавиатуры а потом добавить мышь.
берем у пушки следущие параметры: угол наклона, сила удара. теперь пользователь нажатием клавиши 0 или 1 управяет углом наклона. а силу регулирует путем клавишь 1,2. создай новый тип tbullet и в неего будешь записывать координаты снаряда и момент времени в который он был выпущен. далее пусть объекты пока прямоугольнички добавь новый тип tenemy и его свойствами будут координаты верхней левой венршины, далее длина и высота, скорость движения по оси х и по оси у, и скоко очков даст за уничтожение. Дальше пвыполняй следующий цикл: до тех пор пока не нажата клавишаделаешь: пауза увеличиваем время если снаряд выпущен, то по формуле балистики вычисляем координаты снаряда(пусть если координаты не равны -1 будем считать что тогда снаряд не выпущен) теперь прибавляем к координатам каждого из врагов его скорость по иксу и по игрику. теперь обновляем экран. причем обнеовлени е экрана будет состоять в том что ты удалишь из массива всех врагов все те враги которые вышли за пределы экрана, далее очистка экрана, и проверка попал ли снаряд или нет. и римсуем врагов или взрыв смотря уничтожен или нет. ну вот а теперь если нажата клавиша то выбираешь её из 1,2,+,-,пробел и если пробел то проверяешь запущен ли снаряд, и если нет, то его запускаешь. если 1 то увеличиваешь силу на 1 ньютон ( 1 пиксель - 1 метр) если 2 то уменьшаешь силу на 1 ньютон если - то уменьшаешь угол на 0.05 радиан если + то увеличиваешь угол на 0.05 радиан ну и все собственнор вот и весь план игры а дальше на нее можно вешать навороты, ты только сначала выложи исходник этого а дальше мы тебе с радостью поможем добать подсчет очков, мышку добавим и прочее и прочее. Сообщение отредактировано: arhimag - 20.12.2006 14:55 -------------------- Чего хочет женщина – того хочет Бог
|
1234 |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Объект снизу может стрелять по летящим сверху телам, после чего они исчезают, и двигаться вправо-влево. Без ООП, управление: стрелка влево-влево, вправо-вправо, стрелять-пробел. Одним словом, без прибамбасов. Единственное-таблица рекордов и уровень сложности(первое не столь важно). Заранее спасибо |
arhimag |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
смотри мой пост выше и говори что тебя не устраивает, что-то кроме управления?
-------------------- Чего хочет женщина – того хочет Бог
|
1234 |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
смотри мой пост выше и говори что тебя не устраивает, что-то кроме управления? Можно без мыши; пушка стреляет только прямо, хм... зачем здесь сила удара. Когда пушка стреляет, снаряд либо попадает в шарик и он исчезает или снаряд улетает вверх. Не надо никакой взрыв, поражённая цель просто исчезает. Но появляются другие шарики и ты, типа, зарабатываешь очки гася их. |
arhimag |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() -------------------- Чего хочет женщина – того хочет Бог
|
1234 |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Игра, что-то вроде spaceimpact только сверху и шарик уничтожается за один выстрел.
|
Malice |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если проблема в том, что не знаешь с чего начать, то на тебе небольшой набросок:
uses crt;
type point=record x,y:integer; end;
var i,res:integer;
ch:char;
p:point;
sn,cl:array [1..10] of point;
t:byte;
scr: array [0..24,0..79] of word absolute $b800:0;
procedure paint;
var i,j:integer;
begin
fillchar(scr,80*50,0);
scr[p.y,p.x]:=$0731; inc(t); t:=t mod 10;
for I:=1 to 10 do begin
scr[cl[i].y,cl[i].x]:=$072b;
if t=0 then cl[i].x:=(cl[i].x+79) mod 80;
end;
for I:=1 to 10 do
if sn[i].x>0 then begin
scr[sn[i].y,sn[i].x]:=$072a;
if sn[i].y>1 then begin
if t=0 then begin dec(sn[i].y);
for j:=1 to 10 do
if (sn[i].x=cl[j].x) and (sn[i].y=cl[j].y) then begin
inc (res); cl[j].x:=80; cl[j].y:=random (10);
end;
end;
end else sn[i].x:=0;
end;
gotoxy(1,1); textcolor(7);writeln ('popal=',res);
end;
begin
p.x:=40; p.y:=24; t:=0;
i:=0; for i:=1 to 10 do begin cl[i].x:=random (80); cl[i].y:=random (10); end;
repeat
ch:=char(0);
paint; delay (10);
while keypressed do ch:=readkey;
case ch of
'z': if p.x>1 then dec(p.x);
'x': if p.x<80 then inc(p.x);
' ': begin
i:=1; while (sn[i].x>0) and (i<10) do inc (i);
if i<10 then sn[i].x:=p.x; sn[i].y:=p.y-1;
{while}
end;
end;
until (ch='q') or (ch=char(27));
end.
Теперь ты знаешь с чего начать, продолжай ![]() |
1234 |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Вообще-то, если я правильно понял, это это не то, что нужно
|
Malice |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
1234 |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Это, можно понимать, объекты, которые нужно уничтожать. Но они летят не сверху. И вообще, кусками до меня не доходит
|
Malice |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Твой ответ похож на текст после перевода стилусом. Ты можешь выражаться точнее ? Надо чтоб сверху падало? Не суть, я показал принцип, что верху, что сбоку - переделать пять секунд. Текст/графика - монопенисуално. А то, что не доходит, тем более, как - я не виноват
![]() |
![]() ![]() |
![]() |
Текстовая версия | 22.07.2025 20:02 |