Ver Mensaje Individual
  #7  
Antiguo 23-03-2016
Bant Bant is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 19
Reputación: 0
Bant Va por buen camino
Segui el consejo de AgustinOrtu e indague sobre el tema del debugger pero termine muy confundido xDD
Perooo leyendo entendi osea el proceso ControlarEventos; deberia activarse al presionar una tecla debido a que dependiendo la tecla que sea produce una accion (en este caso moveria el Sprite que cargue) para eso tengo el procedure Leer; en la clase TTeclado que me lee algun evento del teclado.

Código Delphi [-]
procedure TTeclado.Leer;
begin
  // ¿Se ha producido un evento?
  if SDL_PollEvent( @Evento ) > 0 then

  begin
    // ¿Ha pulsado una tecla?
    if Evento.type_ = SDL_KEYDOWN then
    begin
      x := True; //Introducido recientemente
      iUltTec := Evento.key.keysym.sym;

      case Evento.key.keysym.sym of
        SDLK_ESCAPE: bSalir := True;
        SDLK_RIGHT: bDerecha := True;
        SDLK_LEFT: bIzquierda := True;
        SDLK_UP: bArriba := True;
        SDLK_DOWN: bAbajo := True;
        SDLK_SPACE: bEspacio := True;
        SDLK_RETURN: bIntro := True;
        SDLK_LCTRL: bCtrl_Izq := True;
      end;
    end;

    // ¿Ha levantado una tecla?
    if Evento.type_ = SDL_KEYUP then
    begin
      iUltTec := 0;

      case Evento.key.keysym.sym of
        SDLK_RIGHT: bDerecha := False;
        SDLK_LEFT: bIzquierda := False;
        SDLK_UP: bArriba := False;
        SDLK_DOWN: bAbajo := False;
        SDLK_SPACE: bEspacio := False;
        SDLK_RETURN: bIntro := False;
        SDLK_LCTRL: bCtrl_Izq := False;
      end;
    end;
  end;
  x := False;  //Introducido recientemente
end;

Lo que dice "Introducido recientemente" lo puse asi para que en el bucle principal del programa si se cumple la condicion:

Código Delphi [-]
Temporizador.Incrementar;
      if x = True then
      ControlarEventos;

me ejecute el procedure ControlarEventos; y no cada 25 mls(Debido a que es un juego tiene que tener un tiempo de reaccion rapido no? Por lo cual cada 25 mls el Temporizador se actualiza) ahora cuando lo ejecuto no da error pero no hace nada en el procedure ControlarEventos; y comprobe si se cumplia la condicion y en efecto puse ShowMessage() debajo de cada Introduccido recientemente y al momento de ejecuccion me devolvia los valores asignados, deberas perdon por insistir tanto pero alguna idea de como resolver este meollo ??
Responder Con Cita