Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Poder: 14
Celta Va por buen camino
Question Ayuda En Un Juego

holaaa a todos... soy re nuevito en este foro asi q espero q m ayuden plz! =D
les comento q estoy asiendo un juego en delphi 7 ...se trata de un juego de naves ya logre que colisione que se mueva 360 grados sonidos graficos animaciones etc...
pero llevo casi 2 años que comenze con esto y aun no e podido aserle disparar.. :P
ya probe creando barias imagenes en un panel pero cada ves que dispara se ba asiendo mas grande el panel...tambien probe asiendo un solo disparo y cuando se lansa que vuelva ala misma posicion del avion pero no me sirve mucho...mmmm si piden el codigo de mi jueguito se los mando aora no tengo tiempo ..espero q m ayuden bay!
Responder Con Cita
  #2  
Antiguo 12-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, Celta, bienvenido a clubdelphi, te aconsejo que leas nuestra guía de estilo, muchas gracias.
Responder Con Cita
  #3  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tal vez te de alguna idea
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 17-07-2010 a las 18:54:11.
Responder Con Cita
  #4  
Antiguo 12-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.333
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hombre, pues me cuesta creer que hayas logrado implementar colisiones, sonidos, gráficos, animaciones,... y que no consigas disparar un misil...

Creo que el ejemplo de Caral de puede dar una idea para empezar; La idea es similar si utilizas una imagen, un Shape o lo pintas directamente.
Si nos puedes explicar un poco mejor lo que necesitas (concretando) tal vez te podamos ayudar, ya que (yo al menos) no he entendido lo del panel.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La parte mas sencilla esta en disparar.
Ahora si lo que se quiere es dirigirlo a un objeto en movimiento entonces se debe calcular la trayectoria.
Por ahí tengo un ejemplo (el burrito perseguido) que lo que hace es un objeto sigue a otro a donde este valla.
En tal caso no tendria gracia ya que siempre lo alcanzara.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 12-07-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Poder: 14
Celta Va por buen camino
sii ami tambien me cuesta creer ajajaj
lo que logre es hacer que dispare un solo misil como el ejemplo pero no que dispare muchos ala ves y que se cree en la imagen del avion
Responder Con Cita
  #7  
Antiguo 12-07-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Poder: 14
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 Notevi fecha: 12-07-2010 a las 21:41:33.
Responder Con Cita
  #8  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bonito codigo, ordenadito y todo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 13-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Creo que seria bueno colocar el programa completo en algun lado, para poder bajarlo y poder tratar de entenderlo.
Con el codigo tal y como se puso es muy complicado, por lo menos para mi, entender que y como hace cada cosa.
Se tendria que empezar por poner las imagenes, con los tamaños adecuados, etc, etc.
Es mi opinion para poder continuar tratando de ayudar.
Saludos
__________________
Siempre Novato
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Novato solicita ayuda..Juego en Delphi j_flores3000 OOP 24 14-07-2010 19:10:33
Necesito ayuda con juego de tipo Bingo sdiaz1983 Varios 0 04-05-2008 23:41:21
Pasar juego a exe soler Varios 2 10-02-2008 22:57:42
[ayuda]Fondo autodeslizante como de un juego lostprophets Varios 6 24-01-2008 10:21:07
Juego Memory Xema OOP 1 16-09-2004 13:59:24


La franja horaria es GMT +2. Ahora son las 11:29:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi