Ver Mensaje Individual
  #7  
Antiguo 12-07-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Reputación: 16
Celta Va por buen camino
...

Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, pngimage, ExtCtrls, StdCtrls;

         const
        DISTANCIA_AL_BORDE = 20;

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    esp1: TImage;
    esp2: TImage;
    img: TImage;
    Timer1: TTimer;
    imgmisil: TImage;
    Timer2: TTimer;
    Timer3: TTimer;
    ene: TImage;
    Timer4: TTimer;
    Timer5: TTimer;
    Label1: TLabel;
    Timer6: TTimer;
    Timerderecha: TTimer;
    TimerArriba: TTimer;
    TimerAbajo: TTimer;
    TimerIzquierda: TTimer;
    procedure PaintBox1Paint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer3Timer(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure Timer5Timer(Sender: TObject);
    procedure Timer6Timer(Sender: TObject);
    procedure TimerderechaTimer(Sender: TObject);
    procedure TimerArribaTimer(Sender: TObject);
    procedure TimerAbajoTimer(Sender: TObject);
    procedure TimerIzquierdaTimer(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    Count: Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
             x: integer;
             Ganadas : integer;
              Perdidas: integer;

  sh:TShape;
y: integer;
implementation
                 const
       arr: array[0..65, 0..10] of integer =
((1, 1, 2, 1, 1,1 ,1 ,1 ,1 ,1 ,1 ),
(1, 1, 2, 2, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(1, 1, 1, 1, 2 ,1 ,2 ,1 ,1 ,1 ,2),
(1, 1, 2, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(1, 1, 1, 1, 2 ,2 ,1 ,2 ,1 ,1 ,2),
(2, 1, 2, 2, 2 ,2 ,1 ,1 ,1 ,1 ,1),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,2 ,1 ,2),
(2, 1, 1, 2, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2 ,1 ,2 ,1 ,2 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 2, 2, 2 ,2 ,1 ,1 ,1 ,1 ,1),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,2 ,1 ,2),
(2, 1, 1, 2, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2 ,1 ,2 ,1 ,2 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 2, 2, 2 ,2 ,1 ,1 ,1 ,1 ,1),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,2 ,1 ,2),
(2, 1, 1, 2, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2 ,1 ,2 ,1 ,2 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 2, 2, 2 ,2 ,1 ,1 ,1 ,1 ,1),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,2 ,2 ,1 ,2),
(2, 1, 1, 2, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 2 ,1 ,2 ,1 ,2 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1 ,1 ,1 ,1 ,1 ,2),
(2, 1, 1, 1, 1 ,1, 1, 1, 1 ,1 ,2));
{$R *.dfm}

procedure TForm1.PaintBox1Paint(Sender: TObject);

var
x: integer;
y: integer;
begin
 for x := 0 to 20 do begin
 for y := 0 to 10 do begin
 case arr[x, y] of

 0: paintbox1.Canvas.CopyRect(Rect(x*75, y*75,
 (x*75)+75,(y*75)+75),esp1.canvas,rect(0,0,75,75));

 1: paintbox1.Canvas.CopyRect(Rect(x*75, y*75,
 (x*75)+75,(y*75)+75),esp2.canvas,rect(0,0,75,75));

 2:  paintbox1.Canvas.CopyRect(Rect(x*75, y*75,
 (x*75)+75,(y*75)+75),esp1.canvas,rect(0,0,75,75));






end;
 end;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
       form1.DoubleBuffered := True;
        Img.Width := Img.Picture.Width;
 Img.Height := Img.Picture.Height;

 ImgMisil.Width := ImgMisil.Picture.Width;
 ImgMisil.Height := ImgMisil.Picture.Height;

 ene.Width := ene.Picture.Width;
 ene.Height := ene.Picture.Height;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
imgmisil.top := imgmisil.top -6;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 27 then close;
if key = vk_control then
    timer1.Enabled := false;
timer6.Enabled :=false;
imgmisil.Visible := true;
            timer2.Enabled := true;









            if key = vk_left then timerizquierda.Enabled := true;
              if key = vk_right then timerderecha.Enabled := true;
                if key = vk_down then timerabajo.Enabled := true;
                  if key = vk_up then timerarriba.Enabled := true;
       end;


procedure TForm1.Timer3Timer(Sender: TObject);
var
  r1, r2, b1, b2:Integer;
begin
r1 := (IMG.Left + IMG.Width);
  r2 := (ENE.Left + ENE.Width);
  b1 := (IMG.Top + IMG.Height);
  b2 := (ENE.Top + ENE.Height);

if (((IMG.Left < ENE.Left) and (r1 > ENE.Left))and
       ((IMG.Top < ENE.Top) and (b1 > ENE.Top)))  or

          (((ENE.Left < IMG.Left) and (r2 > IMG.Left))and
                ((ENE.Top < IMG.Top) and (b2 > IMG.Top))) or

         (((IMG.Left < ENE.Left) and (r1 > ENE.Left))and
       ((ENE.Top < IMG.Top) and (b2 > IMG.Top))) or

     (((ENE.Left < IMG.Left) and (r2 > IMG.Left)) and
      ((IMG.Top < ENE.Top) and (b1 > ENE.Top)))    then begin
          Ganadas := Ganadas + 1;


    img.Visible := False;
    TIMER4.Enabled := FALSE;





           end


    end;



procedure TForm1.Timer4Timer(Sender: TObject);
begin
if img.Left > ene.left then
ene.left := ene.left +1;

if img.Left < ene.left then
ene.Left := ene.left -1;

if img.Top > ene.Top then
ene.Top := ene.Top +1;

if img.Top < ene.Top then
ene.Top := ene.Top -1;

end;

procedure TForm1.Timer5Timer(Sender: TObject);
var
  r1, r2, b1, b2:Integer;
begin
r1 := (IMGMISIL.Left + IMGMISIL.Width);
  r2 := (ENE.Left + ENE.Width);
  b1 := (IMGMISIL.Top + IMGMISIL.Height);
  b2 := (ENE.Top + ENE.Height);

   if (((IMGMISIL.Left < ene.Left) and (r1 > ene.Left)) and
      ((IMGMISIL.Top < ene.Top) and (b1 > ene.Top))) or

     (((ene.Left < IMGMISIL.Left) and (r2 > IMGMISIL.Left)) and
      ((ene.Top < IMGMISIL.Top) and (b2 > IMGMISIL.Top))) or

     (((IMGMISIL.Left < ene.Left) and (r1 > ene.Left)) and
      ((ene.Top < IMGMISIL.Top) and (b2 > IMGMISIL.Top))) or

     (((ene.Left < IMGMISIL.Left) and (r2 > IMGMISIL.Left)) and
      ((IMGMISIL.Top < ene.Top) and (b1 > ene.Top))) then begin
    ene.Visible := False;
                    imgmisil.Visible := False;
    TIMER4.Enabled := FALSE;
    

end;
    end;
procedure TForm1.Timer6Timer(Sender: TObject);
begin
imgmisil.Left := img.Left;
imgmisil.Top := img.Top ;
end;


procedure TForm1.TimerderechaTimer(Sender: TObject);
begin
  if (GetKeyState(VK_RIGHT) and $90) > 0 then
    Img.Left:= Img.Left + 4;
end;

procedure TForm1.TimerArribaTimer(Sender: TObject);
begin
       if (GetKeyState(VK_UP) and $90) > 0 then
    Img.Top:= Img.Top - 4;
end;

procedure TForm1.TimerAbajoTimer(Sender: TObject);
begin
  if (GetKeyState(VK_DOWN) and $90) > 0 then
    Img.Top:= Img.Top + 4;
end;

procedure TForm1.TimerIzquierdaTimer(Sender: TObject);
begin
        if (GetKeyState(VK_LEFT) and $90) > 0 then
        Img.Left:= Img.Left - 4;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 ImgMisil.Left := Img.Left + Img.Width -36;
             ImgMisil.Top := Img.Top + round(Img.Height / 4);
end;

end.

es el codigo de mi jueguito =D dispara un solo misil

aaaa para los graficos estoy utilizando los componentes png que lo unico que hace(lo unico encerio =D) Es usar el Timage comun de delphi para hacerlo que soporte mas formatos como jpg png etc...

Última edición por Casimiro Noteví fecha: 12-07-2010 a las 21:41:33.
Responder Con Cita