Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2007
j_flores3000 j_flores3000 is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
j_flores3000 Va por buen camino
Exclamation Novato solicita ayuda..Juego en Delphi

Hola a todos. como ya aclare soy un novato en delphi. tengo que crear un juego para la escuela (1º año). la cuestion es que ya tengo todo armado. el juego se trata de un aviion que se va moviendo y cada vez que apreto espacio sale el misil para destruir a otros aviones. lo que no puedo hacer es que cuando apreto espacio ( esto lo se hacer vk_space) salga el misil del lugar donde este el avion que puede ser en cualquier lado....por favor ayudenme.
Responder Con Cita
  #2  
Antiguo 14-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Para hacer dicho avión hiciste alguna clase llamada TAvion o algo asi?

Si es asi, pues me imagino que debes tener algunas propiedades que indiquen la poscición en la que esta el avión y solo seria cuestión de crear un metodo dentro de la clase que dispare dicho cohete dependiendo de dichas propiedades.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 14-11-2007
j_flores3000 j_flores3000 is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
j_flores3000 Va por buen camino
Re::

Al avion lo hice con TImage y el misil con un TLabel.
me ayudarias un poco???
gracias...
si el misil es uno magic que sale derecho... te muestro mi codigo

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Avion: TImage;
RDisparo: TTimer;
Misil: TLabel;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure MisilClick(Sender: TObject);
procedure RDisparoTimer(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1 : TForm1;
//A_Arriba : boolean;
//A_Abajo : boolean;
//A_Izq : boolean;
//A_Der : boolean;
X_Avion : integer;
Y_Avion : integer;
Disparo : boolean;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin

ShowCursor(True);
VertScrollBar.Visible := False;
HorzScrollBar.Visible := False;
Color := clAqua;
//BorderStyle := bsNone;


//Ubicar Avion

Y_Avion := (ClientWidth div 2) - (Avion.Width div 2);
Avion.Top := Y_Avion;
avion.Left := 0;

end;



procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

case Key of

vk_up : Avion.Top := Avion.Top -5;
vk_down : Avion.Top := Avion.Top +5;
vk_left : Avion.left := Avion.left -5;
vk_right : Avion.left := Avion.left +5;
vk_escape : Close;
vk_space : disparo := true;
end;

end;

procedure TForm1.RDisparoTimer(Sender: TObject);
begin


if disparo then begin
Misil.Visible := True;
Misil.Left := Misil.Left +5;


end;

end;

procedure TForm1.MisilClick(Sender: TObject);
begin

Misil.Top := Avion.Top +20;
Misil.Left := Avion.Left +100;

end;

end.
Responder Con Cita
  #4  
Antiguo 14-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
flores3000,
Por lo que veo, puede que haya estos problemas:
1. Sólo se verá un sólo disparo
2. La velocidad del misil
3. Considerar el impacto contra el objetivo
4. Evitar que se pase de los bordes

Ahora no puedo analizar con profundidad el código, debo ausentarme por unas horas. Como te dije antes, si puedes profundizar más sobre el tema hazlo. Hay cosas que considerar que no están en la explicación inicial, sería muy útil que cuanto más detalles des a conocer sobre el juego y de tus problemas va a ser más fácil ayudarte.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 15-11-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Me ha costado, pero lo he encontrado (para ello he tenido que reproducir lo que creo que has hecho):
Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
                              Shift: TShiftState);
begin
   case Key of
  ......
    vk_space  : disparo    := true;
  end;
end;

procedure TForm1.RDisparoTimer(Sender: TObject);
begin
  if disparo then
  begin
    Misil.Visible := True;
    Misil.Left    :=  Misil.Left +5;
  end;
end;

procedure TForm1.MisilClick(Sender: TObject);
begin
  Misil.Top     := Avion.Top +20;
  Misil.Left    := Avion.Left +100;
end;

Veamos: por un lado le estás diciendo que si pulsas la barra espaciadora, "Disparo" es cierto. Luego le dices que si "Disparo" es cierto, entonces mueva la etiqueta misil cada X tiempo. Para terminar le dices que, si pulsas con el ratón sobre la etiqueta entonces mueva dicha etiqueta cerca del avión.

La cuestión es que no le dices dónde ha de ponerse el misil cuando disparas, sino cuando pulsas la etiqueta, que no es visible y, encima, se mueve. Por eso "no lo ves".

Un aviso, por si te interesa: el enfoque que le estás dando no es correcto, ya que los componentes que utilizas están preparados para hacer ventanas con botones, iconos y etiquetas, no para hacer juegos y menos para hacer juegos interactivos. Ya sé que es por cuestiones de estudios, pero si de verdad te interesa hacer juegos, echa un vistazo a este hilo. Te prevengo que el ejemplo es muy diferente a lo que estás haciendo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 15-11-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Aquí tienes otro ejemplo de juego MUY simple, pero entretenido

http://www.clubdelphi.com/foros/show...5&postcount=76
Responder Con Cita
  #7  
Antiguo 14-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola j_flores3000,
Bienvenido a Clubdelphi.

Como eres nuevo te recomiendo una leída a la guia de estilo.

Con respecto a tu problema. ¿Podrías por favor profundizar tu explicación y darnos mayores detalles?
Tu problema debe ser analizado desde dos puntos de vistas: lógico y de interfaz ¿en que área tienes problemas (aunque lo más seguro es que sea ambas)?

¿Cómo mueves el avión?¿Se trata de TImage con la figura del avión?¿Cómo estás representando el misíl?
¿El misil debe obedecer el principio de la físíca (caída libre)? ¿O se trata de los fantasiosos misiles laser que van derechito?
Debido a que no aportas detalles no puedo indicarte nada, te pido que tengas la amabilidad de explicar mejor tu problema. Y por favor, muestra parte del código para poder entenderte.
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 26-12-2007
alexxx alexxx is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
alexxx Va por buen camino
por favor Ayuda urgente respondan!!!!

por favor Ayuda urgente!!!
q tal eh leido aki q manejan algo similar al problema q yo tengo no domino el programa este el delphi por eso necesito q me ayuden porq sino reprovare mi curso... el problema q tengo es q me han dejado un jueguito de trabajo q ya lo tengo hecho pero me han pedido q le aumente algunas cosillas mas q son:
poner una opcion q aumente o disminuya la velocidad del avion a eleccion de cada uno y otra q el puntaje cuando llegue a una cantidad determinada por ejemplo 100 aparesca un aviso q diga ganaste! y salga un boton para aceptar y se cierre el programa o el juego. solo me falta eso si fueran tan amables de ayudarme les estare eternamente agradecido mi ultimo dia para presentar este trabajo es mañana miercoles 26/12/07 todo el dia, por favor ruego me ayuden porq es de vida o muerte............................
aki dejo el juego para q lo miren y entiendan mi explicacion pesa un poco asi q lo subi a otro sitio ahi tienen la url para bajarlo espero puedan construirlo esas dos cosas q me faltan...........................


http://www.fileden.com/files/2007/3/...JO%20FINAL.zip
Responder Con Cita
  #9  
Antiguo 26-12-2007
alexxx alexxx is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
alexxx Va por buen camino
q tal eh leido aki q manejan algo similar al problema q yo tengo no domino el programa este el delphi por eso necesito q me ayuden porq sino reprovare mi curso... el problema q tengo es q me han dejado un jueguito de trabajo q ya lo tengo hecho pero me han pedido q le aumente algunas cosillas mas q son:
poner una opcion q aumente o disminuya la velocidad del avion a eleccion de cada uno y otra q el puntaje cuando llegue a una cantidad determinada por ejemplo 100 aparesca un aviso q diga ganaste! y salga un boton para aceptar y se cierre el programa o el juego. solo me falta eso si fueran tan amables de ayudarme les estare eternamente agradecido mi ultimo dia para presentar este trabajo es mañana miercoles 26/12/07 todo el dia, por favor ruego me ayuden porq es de vida o muerte............................
aki dejo el juego para q lo miren y entiendan mi explicacion pesa un poco asi q lo subi a otro sitio ahi tienen la url para bajarlo espero puedan construirlo esas dos cosas q me faltan...........................

http://www.fileden.com/files/2007/3/...37;20FINAL.zip
Responder Con Cita
  #10  
Antiguo 26-12-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola alexxxx,
tanto como que es de vida o muerte ....

Lo más que ocurrirá será que suspenderás la asignatura .

Imagino que estarás comiendote el código de lo que tienes porque sino, lo llevas chungo.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #11  
Antiguo 26-12-2007
alexxx alexxx is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
alexxx Va por buen camino
alexxx

q tal segun lo q tengo entendido lo q me falta es algo simple pero q yo no puedo deducir o entender aun.... podran ayudarme???
Responder Con Cita
  #12  
Antiguo 08-04-2008
alexxx alexxx is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
alexxx Va por buen camino
Thumbs up Saludos a los q me ayudaron...!!!

Q tal hace unos dias recien me entere q aprobe el curso con 15 (puntaje maximo 1 a 20)
gracias amigos me salvaron de una muerte segura en mi casa...
suerte y espero sigan ayudando a mas personas q lo necesiten...
Responder Con Cita
  #13  
Antiguo 14-07-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Poder: 14
Celta Va por buen camino
Varios Miisiles?

hola a todos mi pregunta es como crear varios misiles grasias ..
Responder Con Cita
  #14  
Antiguo 26-12-2007
alexxx alexxx is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
alexxx Va por buen camino
por favor Ayuda urgente!!!

q tal eh leido aki q manejan algo similar al problema q yo tengo no domino el programa este el delphi por eso necesito q me ayuden porq sino reprovare mi curso... el problema q tengo es q me han dejado un jueguito de trabajo q ya lo tengo hecho pero me han pedido q le aumente algunas cosillas mas q son:
poner una opcion q aumente o disminuya la velocidad del avion a eleccion de cada uno y otra q el puntaje cuando llegue a una cantidad determinada por ejemplo 100 aparesca un aviso q diga ganaste! y salga un boton para aceptar y se cierre el programa o el juego. solo me falta eso si fueran tan amables de ayudarme les estare eternamente agradecido mi ultimo dia para presentar este trabajo es mañana miercoles 26/12/07 todo el dia, por favor ruego me ayuden porq es de vida o muerte............................
aki dejo el juego para q lo miren y entiendan mi explicacion pesa un poco asi q lo subi a otro sitio ahi tienen la url para bajarlo espero puedan construirlo esas dos cosas q me faltan...........................

http://www.fileden.com/files/2007/3/...JO%20FINAL.zip
Responder Con Cita
  #15  
Antiguo 26-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Muy simpático el juego.
Coloca un componente Updow un edit mas y un boton.
En el edit le pones en text 50, sera el minimo.
En el updow le pones en increment 5, para que valla de 5 en 5, en Min 50 y en max 250.
El Updow en eventos:
Associate: Edit2
Aqui pongo el codigo completo, asi lo veras mejor.
Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

case key of
vk_left:
        image2.Left:=image2.Left-8;
vk_right:
        image2.Left:=image2.left+8;
vk_up:
        begin
        timer2.Interval:=10;
        image3.Visible:=true;
        image3.Left:=image2.Left+30;
        end;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.left:=image1.left+10;
w:=image1.left;
x:=image1.left+104;
y:=image1.top;
z:=image1.top+40;
if image1.left>500 then
  image1.left:=0;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
image1.Visible:=true;
image3.Top:=image3.top-5;
image3.Visible:=true;
if image3.Topthen
  begin
  timer2.interval:=0;
  image3.Visible:=false;
  image3.Top:=376;
  image4.Visible:=false;
  end;
if (image3.top>=y) and (image3.top<=z) then
  if (image3.left>=w) and (image3.left<=x) then
    begin
    image1.Left:=0;
    image4.Visible:=true;
    image4.Top:=image3.Top-15;
    image4.Left:=image3.Left-10;
    image1.Visible:=false;

    s:=s+10;
    str((s+0),p);
    edit1.text:=p;
    If Edit1.Text = '200' then
    begin
    Timer1.Enabled:= False;
    Showmessage('gano');
    Button1.Enabled:= true;
    Edit1.Text := '0';
    s:= 0;
    end;
    end;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
   timer1.interval:= StrToInt(Edit2.Text);
end;

procedure TForm1.UpDown1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
   timer1.interval:= UpDown1.Increment;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Edit2.Enabled:= True;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
    Edit2.Enabled:= False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Timer1.Enabled:= True;
   Button1.Enabled:= false;
end;

end.
Saludos
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
programa de juego en delphi sanchez_bc02 OOP 1 08-10-2007 00:15:36
Juego de la Oca en delphi james_dean OOP 3 10-06-2005 10:09:28
¡¡ ayuda a un novato en mysql+zeos+delphi !! miguelogm Conexión con bases de datos 1 14-03-2005 18:04:12
Novato en php? solicita ayuda? danytorres PHP 5 02-12-2003 09:47:11


La franja horaria es GMT +2. Ahora son las 02:08:44.


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