![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#106
|
||||
|
||||
|
У меня тоже норм закачалось. Наверно действительно нужно на мыле быть зареганным.
![]() А так игруха норм. Отшлифовать и на выставку ![]() |
|
#107
|
||||
|
||||
|
Цитата:
А я без игры как-нибудь проживу. ![]() |
|
#108
|
||||
|
||||
|
Цитата:
Ам... Нееет, что Вы, какие битмапы? Просто там три мелодии весьма тяжелых... Они то вес и делают по сути ) Спасибо, я надеялся, что у меня хоть что-то получится и не ожидал подобной оценки, потому я удивлен и очень благодарен ) Да я бы очень хотел бы разобрать код "до ума", дабы в последующем иметь представление, как не "быдлокодерить", так как один знакомый говорил, что у меня там половина кода - длинное и буквальное ) Вот если бы понять как делать еще круче, то я бы создал еще более сильную игру, да xD И в этой игре я так и не додумал, как же все таки заставить монстров атаковать по отдельности. Где-то у меня ошибка с этим массивом, потому что: во-первых, у меня монстры появляются по такой формуле: макс количество монстров*2. Ну то есть всегда умножается на два, что меня тоже поставило в ступор, но я решил этим и воспользоваться. Ну и с таблицей затык вышел. Вроде создал, даже выводил (на секунду), но как вывести её "нормально" пока не додумал =\ Но я буду стараться! ^^ Цитата:
Цитата:
Цитата:
Спасибо всем за Ваши отзывы ) Вот уж не думал, что столько народу поглядит на моё творение xD Очень приятно, правда ) |
|
#109
|
||||
|
||||
|
Цитата:
|
|
#110
|
||||
|
||||
|
Еще и бэкапы этих дфмок.
|
|
#111
|
||||
|
||||
|
Цитата:
|
|
#112
|
|||
|
|||
|
Добрый день.
Честно говоря впечатлен вашей статьей, не могли бы вы мне помочь Сразу говорю, я относительно недавно начал изучать язык, поэтому попрошу сильно не ругаться, за некоторые возможно глупые вопросы). Сейчас сам пытаюсь реализовать небольшую игру. И у меня возникла проблемка в самом начале, не могли бы подсказать как вы реализовали создание объектов Player (игрок) и Enemy(враги). Вот, например, (начну с самого начала): у меня есть модуль main и модуль objects: Код:
TBase=class
private
x: Integer;
y: Integer;
public
constructor Create(x0, y0: Integer);
procedure setX (x0: Integer); //назначают координаты
procedure setY (y0: Integer);
function getX: Integer; //возвращают координаты
function getY: Integer;
end;
{ TStatic }
TStatic=class(TBase)
private
bitmap: TBitmap;
public
constructor Create(x0, y0: Integer; bitmap0: TBitmap);
procedure setBitmap (bitmap0: TBitmap); // меняет изображ. внутри объекта
function getBitmap: TBitmap; // возвращает изображение
end;
{ TAnimate }
TAnimate=class(TBase)
private
bitmap: array[0..100] of TBitmap;
curFrame: Integer; //текущий кадр
maxFrame: Integer; //максим.кадр
public
constructor Create(x0, y0: Integer; bitmap0: array of TBitmap;
maxFrame0: Integer);
procedure nextFrame; //меняет кадры
procedure setBitmap(bitmap0: array of TBitmap);
function getBitmap:TBitmap;
end;
{ TEnemy }
TEnemy=class(TAnimate)
public
procedure move;
end;
{ TPlayer }
TPlayer=class(TAnimate)
private
health: Integer;
public
constructor Create(x0, y0: Integer; bitmap0: array of TBitmap;
maxFrame0: Integer);
procedure moveLeft;
procedure moveRight;
function getHealth: Integer;
end;
implementation
{ TEnemy }
procedure TEnemy.move;
begin
y:= y+3;
end;
{ TPlayer }
constructor TPlayer.Create(x0, y0: Integer; bitmap0: array of TBitmap;
maxFrame0: Integer);
begin
inherited;
health:= 100;
end;
procedure TPlayer.moveLeft;
begin
x:= x-5;
end;
procedure TPlayer.moveRight;
begin
x:= x+5;
end;
{ TAnimate }
constructor TAnimate.Create(x0, y0: Integer; bitmap0: array of TBitmap;
maxFrame0: Integer);
begin
x:=x0;
y:=y0;
bitmap:=bitmap0;
curFrame:= 0;
maxFRame:= maxFrame0;
end;
procedure TAnimate.nextFrame;
begin
if curFrame < maxFrame then
curFrame:=curFrame+1
else
curFrame:=0;
end;
procedure TAnimate.setBitmap(bitmap0: array of TBitmap);
begin
bitmap:=bitmap0;
end;
function TAnimate.getBitmap: TBitmap;
begin
result:=bitmap[curFrame];
end;
{ TStatic }
constructor TStatic.Create(x0, y0: Integer; bitmap0: TBitmap);
begin
x:=x0;
y:=y0;
bitmap:=bitmap0;
end;
procedure TStatic.setBitmap(bitmap0: TBitmap);
begin
bitmap:=bitmap0;
end;
function TStatic.getBitmap: TBitmap;
begin
result:=bitmap;
end;
{ TBase }
constructor TBase.Create(x0, y0: Integer);
begin
x:=x0;
y:=y0;
end;
procedure TBase.setX(x0: Integer);
begin
x:=x0;
end;
procedure TBase.setY(y0: Integer);
begin
y:=y0;
end;
function TBase.getX: Integer;
begin
result:=x;
end;
function TBase.getY: Integer;
begin
result:=y;
end;
end.В модуле main у меня след.образом объявлены переменные: Код:
Form1: TForm1;
//graphics
plPic: array [0..2] of TBitmap;
grPic: array [0..2] of TBitmap;
enPic: array [0..2] of TBitmap;
seaPic: TBitmap;
bulPic: TBitmap;
//objects
Player: TPlayer;
Sea: array [0..1] of Tsea ;
Ground: array [0..2] of TGround;
Bullet: array [0..100] of TBullet;
Enemy: array [0..100] of TEnemy;
//booleans
MoveL, MoveR: boolean;
Shoot: boolean;
//Integers
delay:Integer;
score: Integer;
И подгружается графика:
//load graphics
//player
for i:=0 to 2 do
begin
plPic[i]:= TBitmap.Create;
plPic[i].LoadFromFile('img/player'+IntToStr(i)+'.bmp');
plPic[i].Transparent:= True;
end;
//enemies (графика для enemy)
for i:=0 to 2 do
begin
enPic[i]:= TBitmap.Create;
enPic[i].LoadFromFile('img/enemy'+IntToStr(i)+'.bmp');
enPic[i].Transparent:= True;
end;Далее идет реализация процедур. Проблема в том, что в модуле objects выдает ошибку incompetible types (bitmap и bitmap0).........прошу вас посмотреть, что можно исправить. А также подскажите, пож-та, как вы реализовали создание объектов. Последний раз редактировалось M.A.D.M.A.N., 24.03.2014 в 15:07. |
|
#113
|
||||
|
||||
|
Цитата:
Код:
{ TAnimate }
TAnimate=class(TBase)
private
bitmap: array of TBitmap;Код:
procedure TAnimate.setBitmap(bitmap0: array of TBitmap); var i: Integer; begin SetLength(bitmap, Length(bitmap0)); for i := 0 to High(bitmap) do bitmap[i] := bitmap0[i]; end; |