Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 22:52   #1
wzz
 
Регистрация: 17.10.2009
Сообщений: 4
По умолчанию Проблема с 2D аркадой

Pобяты у меня ппц... полный, кризис жанра! вобщем я ворзнамерился написать 2D аркаду(а иначе у меня программинг не учиться тока так ставя перед собой сложные задачи и решая их я и могу учиться). Игра примитиф летит самолетик постояно стреляет патронами... мочиво пиф-паф итд. В чем собсно трабл? а вот в чем я незнаю как зделать так чтоб постояно стрелял патриками... подскажыте.Уже все перепробовал и через масиви и через таймер итд... нефига невыходит. Прилагаю код + екзешник.
Код HTML:
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ExtCtrls, Menus;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    Timer1: TTimer;
    procedure FormActivate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MenuItem5Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1;
  background,spr1,bullet: TBitmap;
  x1,y1,y2,i:integer;
implementation
 
{ TForm1 }
 
procedure TForm1.FormActivate(Sender: TObject);
begin
 bullet:=TBitmap.Create;
 spr1:= TBitmap.Create;
 background :=TBitmap.Create;
 background.LoadFromFile('Data/background.bmp');
 bullet.LoadFromFile('Data/bullet.bmp');
 Image1.Height:=Form1.Height;
 Image1.Width:=Form1.Width;
 Form1.Image1.Canvas.Draw(0,0, background);
 spr1.LoadFromFile('Data/spr1.bmp');
 Image2.Height:=spr1.Height;
 Image2.width:=spr1.Width;
 Form1.Image2.Canvas.Draw(0,0, spr1);
 spr1.Transparent:=true;
 spr1.TransparentColor:= spr1.Canvas.Pixels[1,1];
 bullet.Transparent:=true;
 bullet.TransparentColor:= bullet.Canvas.Pixels[1,1];
end;
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 with Image2 do
   case Key of
  37: Left:=Left-25;
  40: Top:=Top+25;
  39: Left:=Left+25;
  38: Top:=Top-25;
  65: Left:=Left-25;
  83: Top:=Top+25;
  68: Left:=Left+25;
  87: Top:=Top-25;
end;
 if Image2.Left>(Form1.Width-Image2.Width) then Image2.Left:=Form1.Width-Image2.Width;
 if Image2.Left<0 then Image2.Left:=0;
 if Image2.Top>(Form1.Height-Image2.Height) then Image2.Top:=Form1.Height-Image2.Height;
 if Image2.Top<0 then Image2.Top:=0;
end;
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 
end;
 
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
 close;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 x1:=Image2.Left+20;
 y1:=Image2.Top+10;
 y2:=Image2.Top+47;
  Image1.Canvas.Draw(x1,y1, bullet);
  Image1.Canvas.Draw(x1,y2,bullet);
 
end;
 
initialization
  {$I unit1.lrs}
 
end.
p.s Помогите плз.
Вложения
Тип файла: rar arcade.rar (771.1 Кб, 13 просмотров)
wzz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37