Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Флейм
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #106  
Старый 01.07.2013, 23:43
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

У меня тоже норм закачалось. Наверно действительно нужно на мыле быть зареганным.

А так игруха норм. Отшлифовать и на выставку
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #107  
Старый 02.07.2013, 04:59
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ined
Наверно действительно нужно на мыле быть зареганным.
А если у меня нет учетки на Mail.ru? Чувствую, с таким ощущением собственного превосходства автор игры далеко пойдет. Пипл ведь как? Чтобы хавал -- надо с кончика лопаты кормить.

А я без игры как-нибудь проживу.
Ответить с цитированием
  #108  
Старый 07.07.2013, 19:09
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Это сильно - 71 мб. Вы там что все в битмапах запихали?

ПС: Ну что вам сказать, поздравляю. Для первой игрушки, да еще с нуля - очень достойно вышло. Если есть желание довести ее до ума, можем продолжить в теме. И основное, что необходимо будет сделать это уменьшить ее размер.

Ам... Нееет, что Вы, какие битмапы? Просто там три мелодии весьма тяжелых... Они то вес и делают по сути )

Спасибо, я надеялся, что у меня хоть что-то получится и не ожидал подобной оценки, потому я удивлен и очень благодарен ) Да я бы очень хотел бы разобрать код "до ума", дабы в последующем иметь представление, как не "быдлокодерить", так как один знакомый говорил, что у меня там половина кода - длинное и буквальное ) Вот если бы понять как делать еще круче, то я бы создал еще более сильную игру, да xD
И в этой игре я так и не додумал, как же все таки заставить монстров атаковать по отдельности. Где-то у меня ошибка с этим массивом, потому что: во-первых, у меня монстры появляются по такой формуле: макс количество монстров*2. Ну то есть всегда умножается на два, что меня тоже поставило в ступор, но я решил этим и воспользоваться. Ну и с таблицей затык вышел. Вроде создал, даже выводил (на секунду), но как вывести её "нормально" пока не додумал =\
Но я буду стараться! ^^
Цитата:
Сообщение от M.A.D.M.A.N.
Посмотрел игру, норм, но можно было бы покомпактнее сделать и еще дюжина мессэджбоксов дико напрягает.
Прошу прощения за мессдж боксы, придумаю потом иной вариант )
Цитата:
Сообщение от Freeman
На самом деле нужно настучать по шее автору темы, чтобы выложил файл на нормальный сервис. Я дождался ссылки, даже во FlashGet ее втулил, но скачка действительно медленная, а я нервный.
Оу, я просто использовал первый попавшийся ( Хорошо, в следующий раз буду знать ._.
Цитата:
Сообщение от Freeman
]А если у меня нет учетки на Mail.ru? Чувствую, с таким ощущением собственного превосходства автор игры далеко пойдет. Пипл ведь как? Чтобы хавал -- надо с кончика лопаты кормить
Хээй, у меня может и большое самомнение и уверенность, что я в будущем напишу нечто грандиозное, но все равно, я не такой! xD Можно я Вам лично скину игру поглядеть? )

Спасибо всем за Ваши отзывы ) Вот уж не думал, что столько народу поглядит на моё творение xD Очень приятно, правда )
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием
  #109  
Старый 07.07.2013, 21:25
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Нееет, что Вы, какие битмапы? Просто там три мелодии весьма тяжелых... Они то вес и делают по сути )
В архиве есть исходники, а там DFM файлы с запиханными изображениями. То же, что было раньше. Весят в сумме метров под 40 (точно не помню сколько).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #110  
Старый 07.07.2013, 22:12
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Еще и бэкапы этих дфмок.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #111  
Старый 08.07.2013, 07:11
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Царь
...Просто там три мелодии весьма тяжелых...
Посмотрите как делают всевозможные крякалки - при малых размерах туда умудряются запихнуть *.mod, *.s3m, *.stm, *.it, *.xm etc т.е. трекерную музыку, не самый худший вариант.
Ответить с цитированием
  #112  
Старый 24.03.2014, 09:34
ThierryH ThierryH вне форума
Прохожий
 
Регистрация: 22.03.2014
Сообщения: 2
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Добрый день.
Честно говоря впечатлен вашей статьей,
не могли бы вы мне помочь

Сразу говорю, я относительно недавно начал изучать язык, поэтому попрошу сильно не ругаться, за некоторые возможно глупые вопросы).

Сейчас сам пытаюсь реализовать небольшую игру.
И у меня возникла проблемка в самом начале, не могли бы подсказать как вы реализовали создание объектов Player (игрок) и Enemy(враги).

Вот, например, (начну с самого начала):
у меня есть модуль main и модуль objects:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
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 у меня след.образом объявлены переменные:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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;
MAD: напоминаю про теги

Далее идет реализация процедур.

Проблема в том, что в модуле objects выдает ошибку incompetible types (bitmap и bitmap0).........прошу вас посмотреть, что можно исправить.
А также подскажите, пож-та, как вы реализовали создание объектов.

Последний раз редактировалось M.A.D.M.A.N., 24.03.2014 в 15:07.
Ответить с цитированием
  #113  
Старый 24.03.2014, 12:03
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от ThierryH
Проблема в том, что в модуле objects выдает ошибку incompetible types (bitmap и bitmap0).........прошу вас посмотреть, что можно исправить.
Поле bitmap сделай динамическим массивом:
Код:
1
2
3
4
5
{ TAnimate }
 
TAnimate=class(TBase)
  private
     bitmap: array of TBitmap;
А загрузку делай так:
Код:
1
2
3
4
5
6
7
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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025