Ver Mensaje Individual
  #6  
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
Reputación: 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