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

 



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

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

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

А так игруха норм. Отшлифовать и на выставку
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #107  
Старый 02.07.2013, 04:59
Аватар для Freeman
Freeman Freeman вне форума
Человек-компилятор
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 575
Версия 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,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

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


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #111  
Старый 08.07.2013, 07:11
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,026
Версия 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:
Код:
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;
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 сделай динамическим массивом:
Код:
    { 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;
Ответить с цитированием
Ответ



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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter