Ir al contenido


Juego Rescatando al Burrito.


  • Por favor identifícate para responder
127 respuestas en este tema

#61 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 04:34

Hola
El juego de los rectángulos de Seoane tiene la respuesta, hay que estudiarlo, es complicado.
Saludos


Si esta bueno ese juego y pues la respuesta como dices esta en ese codigo.Fijate cuando uno de los enemigos hace colicion con el cuadradito del puntero se produce el sonido y cambia la cuenta.Pero ese codigo esta complicado, al menos para mi. ;)

Un Saludo.

#62 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 04:37

Hola
Prueba esto:
Genera un nuevo proyecto.
Fijate que en el uses tengas windows.
Ponle dos label. (label1 y label2)
ponle esta variable:


delphi
  1. var
  2.   Form1: TForm1;
  3.   X,Y:Integer; // esta es la nueva


Pon este procedimiento:


delphi
  1. Procedure GetCursor(Var X,Y:Integer);
  2. var
  3. P: TPoint;
  4. begin
  5. GetCursorPos(P);
  6. X:=P.X;Y:=P.Y;
  7. end;


En el evento OnMouseDown del form pon esto:


delphi
  1. procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.    GetCursor(X,Y);
  5.    Label1.Caption:= (Format('%d',[X]));
  6.    Label2.Caption:= (Format('%d',[Y]));
  7. end;


Corre el programa
Cada vez que presiones el mouse en los label te dira la posicion exacta del mismo, X y Y.
Saludos


Ok Trabajando en eso.

Un Saludo.

#63 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 05:00

Ok, pero eso te da las cordenadas de la pantalla en general.No del form.( X= Left y Y= Top) yo tengo un codigo , deja ver si lo encuentro que te deja saber las cordenadas en un Panel (dentro del Panel en que lugar esta X y Y.

Un Saludo.

#64 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 05:06

Aqui esta lo que te decia:



delphi
  1. procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  2.   Y: Integer);
  3. begin
  4. Panel1.Caption:='Posición del ratón en el Panel: X:'+IntToStr(X)+' Y:'+IntToStr(Y);
  5. end;



Solo pones en el evento del Panel1  OnMouseMove.

Un Saludo.

#65 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 05:38

Hola Carlos, este codigo lo saque del juego "persiguiendo al burro" y esta interesante:



delphi
  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. begin
  3. pertop:=image2.Top;
  4. perleft:=image2.Left;
  5. if image2.Top>image1.top then image1.Top:=image1.top+3 else
  6. image1.Top:=image1.top-10;
  7. if image2.left>image1.left then image1.left:=image1.left+3 else
  8. image1.left:=image1.left-10;
  9. end;



La image1 persigue a la image2, si ponemos a la imagen dos a perseguir las cordenadas del puntero(al centro de el Left + 10 ) o lo que sea.Y le damos mas velocidad al timer que controla el movimiento del missil este seguira la direcion que le damos. ;) Tambien se puede hacer que el que lance el missil se desplace Left de acuerdo a donde este el puntero.Y con el boton del raton disparamos.

Un Saludo.

#66 Caral

Caral

    Advanced Member

  • Administrador
  • 4.261 mensajes
  • LocationCosta Rica

Escrito 07 diciembre 2008 - 05:46

Hola
A ver, voy a estudiarlo.
Saludos
  • 0

#67 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 06:00

Hola
A ver, voy a estudiarlo.
Saludos


Estoy trabajando en eso tambien.

Un Saludo.

#68 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 06:36

Bueno aqui tengo una imagenes que le daran mas vida real al UFO cuando a sido alcanzado por los disparos.
Son 8 imagen desde BUfo1.bmp ... asta BUfo8.bmp jejejejejeje se vera mejor el UFO caer. :)


Un Saludo.

Archivos adjuntos

  • Archivo adjunto  85_.zip   43,15KB   2 descargas


#69 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 07 diciembre 2008 - 07:34

Bueno aqui esta la modificacion:



delphi
  1. procedure TForm1.Timer5Timer(Sender: TObject);
  2. var
  3.   comp: TComponent;
  4. begin
  5.   if (Contador1 < 1) or (Contador1 > 8) then
  6.   Contador1 := 1;
  7.   comp := Form3.FindComponent('BUfo' + IntToStr(Contador1));
  8.   TUfo.Picture:= TImage(comp).Picture;
  9.   TUfo.Top := TUfo.Top + 5;
  10.   TUfo.Left := TUfo.Left + 5;
  11.   inc(Contador1);
  12. end;



Timer5 = 50  subi las imagenes al Form3 y le puse ese cambio al codigo.Se puede mejorar, pero se ve mejor ahora. (y)

Un Saludo.

PD:Se tienen que modificar las imagenes, el tamaño  por eso el movimiento del UFO en caida.(pero queda como que esta fallando. :D :D :D

#70 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 diciembre 2008 - 07:10

Hola
Prueba esto:
Genera un nuevo proyecto.
Fijate que en el uses tengas windows.
Ponle dos label. (label1 y label2)
ponle esta variable:


delphi
  1. var
  2.   Form1: TForm1;
  3.   X,Y:Integer; // esta es la nueva


Pon este procedimiento:


delphi
  1. Procedure GetCursor(Var X,Y:Integer);
  2. var
  3. P: TPoint;
  4. begin
  5. GetCursorPos(P);
  6. X:=P.X;Y:=P.Y;
  7. end;


En el evento OnMouseDown del form pon esto:


delphi
  1. procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.    GetCursor(X,Y);
  5.    Label1.Caption:= (Format('%d',[X]));
  6.    Label2.Caption:= (Format('%d',[Y]));
  7. end;


Corre el programa
Cada vez que presiones el mouse en los label te dira la posicion exacta del mismo, X y Y.
Saludos


Solo un comentario de mi parte; si te fijas en el evento OnMouseDown uno de los parametros es x,y estas son las coordenadas del componente donde haces click con el mouse,  voy reintegrandome del fin de semana si necesitan ayuda estamos a la orden
  • 0

#71 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 08 diciembre 2008 - 07:20

Hola Eduarcol.

        Yo creo que la cosa mas bien es, donde esta el puntero y no donde se hace click.La idea es que tu le digas a una imagen (missil) que siga esa cordenada y si la mantienes encima del enemigo pues se produciria la colision.Si le decimos que mande el missil a donde hacemos click pues no se veria el efecto que deceamos.Le imagen missil estara controlada por un timer y en cada evento OnTimer pues dira que su propiedad 'Left := a X del puntero. ;)Solo se debe tener en cuenta X (Left) si no se encuentra el enemigo y el top del missil es mucho mayor al top del enemigo pues se destruye el missil y fallo el tiro ese. :D

No se si me di a entender.

Un Saludo.

#72 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 diciembre 2008 - 07:23

ok, me parece bien la idea, para ese fin tenemos el evento onmousemove, donde cada vez que se produzca acutalize unas variables globales, por ejemplo, posx y posy en el timer se programa que el misil siempre busque esas variables.

Deja que ponga al dia unas cositas en la mañana y le entro al codigo
  • 0

#73 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 08 diciembre 2008 - 07:25

Aqui en este codigo esta lo que te digo:



delphi
  1. procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState;
  2. X,  Y: Integer);
  3. begin
  4. Panel1.Caption:='Posición del ratón en el Panel: X:'+IntToStr(X)+' Y:'+IntToStr(Y);
  5. end;



Este codigo  te deja saber donde esta el raton en ese momento y X estara cambiando si lo mueves detras del enemigo, entonces estaras dandole nuevas cordenadas al missil en su propiedad (Left) esto hace que se vea el efecto de seguir al target.

Un Saludo.

#74 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 08 diciembre 2008 - 07:28

ok, me parece bien la idea, para ese fin tenemos el evento onmousemove, donde cada vez que se produzca acutalize unas variables globales, por ejemplo, posx y posy en el timer se programa que el misil siempre busque esas variables.

Deja que ponga al dia unas cositas en la mañana y le entro al codigo


Ok tranquilo te estaremos esperando.Una cosa, solo nos interesa X ya que solo queremos el Left del missil. ;)

Un Saludo.

PD: Yo estare entrando y saliendo ya que estoy en el trabajo y los lunes son pesados por aca.

#75 Caral

Caral

    Advanced Member

  • Administrador
  • 4.261 mensajes
  • LocationCosta Rica

Escrito 08 diciembre 2008 - 10:04

Hola
Estan muy bien las imagenes, se ve mejor el ovni.
Saludos
  • 0

#76 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 diciembre 2008 - 10:24

cual es la ultima versión para mirarla?

  • 0

#77 Caral

Caral

    Advanced Member

  • Administrador
  • 4.261 mensajes
  • LocationCosta Rica

Escrito 08 diciembre 2008 - 10:41

Hola
Esta es la ultima.
Saludos

[archivo adjunto borrado por el administrador]
  • 0

#78 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 08 diciembre 2008 - 10:58

Hola
Esta es la ultima.
Saludos


Hola Carlos, Casi tenemos la idea de guiar el misil y quedara como los reales.He visto en algunos juegos que si le pones el puntero encima por algun corto tiempo y se mantiene el enemigo dentro del target, este cambia de color y cuando eso sucede entonces se pasan las cordenadas del misil al enemigo.(es como funciona en los reales). ;)Pero para este juego conque siga al puntero estaria bien.

Un Saludo.

PD:Cuando yo sea grande quiero ser asi como tu, que puedes subir files mas grandes. :D :D :D

#79 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 diciembre 2008 - 11:08

Esta muy bien el invento, que les hace falta? veo que esta muy completico jejeje
  • 0

#80 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 08 diciembre 2008 - 11:26

Esta muy bien el invento, que les hace falta? veo que esta muy completico jejeje

Bueno para la etapa de inicio(defender al burrito, solo nos hace falta lo del misil que sea guiado por el puntero(target) que siga la cordenada X (Left) y si mantenemos el target encima del UFO pues se producira la colision. :p
Luego para si se llevan al burrito, eso es otra etapa(rescatarlo).

Un Saludo.