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 24-06-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
Thumbs up Activar TECLAS DE CURSOR

Hola... a todoj..

Bueno.. tengo un problemita...en mi mini juego Pac Man
Lo unico que me falta es que se mueva..
ya tengo el codigo y todo..
pero necesito Activar las [FONT='Calibri','sans-serif']TECLAS DE CURSOR en Delphi..[/font]
[FONT='Calibri','sans-serif'].. aca el codigo..[/font]

[FONT='Calibri','sans-serif']
Código Delphi [-]
 
[FONT='Calibri','sans-serif']unit Ucjuego;[/font]
[FONT='Calibri','sans-serif']interface
uses
sysutils,Graphics;
const
Pared = '1';
Manzana ='7' ;
Bicho = '2' ;
Camino = '0' ;[/font]
[FONT='Calibri','sans-serif']  arriba = 12;
  abajo=33;
  izquierda=44;
  derecha=77;
type
  juego = class
  p: array[1..20 , 1..20] of char;
  BX,BY:integer;
  CX,CY:integer;
  puntos,nivel:integer;
       constructor crear;
       procedure cargarplano(nro:integer);
       procedure pintarpieza(F,C:integer; Pant:tcanvas);
       procedure pintarplano(pant:tcanvas);
       function    escamino(f,c:integer):boolean;
       function    espared(f,c:integer):boolean;
       function    esmanzana(f,c:integer):Boolean;
       procedure   jugar( tecla: integer; pant:tcanvas);
 end;
implementation
constructor juego.crear;
begin
  Puntos := 0;
  Nivel := 1;
  Cx:= 50; Cy:= 50;
end;
  procedure juego.cargarplano( nro: integer);
   var
        f:textfile;
    linea,sn:string;
        i:integer;
        ex:boolean;
               PROCEDURE ASIGNARLINEA(FILA:INTEGER;CAD:STRING);
               var i : integer;
               BEGIN
                  FOR I:=1 TO LENGTH(CAD) DO
                    P[FILA,I]:=CAD[i];
               END;
   begin
       assignfile(f,'C:\planos.txt');
       reset(f);
       sn:=inttoStr(nro);
       ex:=true;
       sn:='*'+sn;
       while (not eof (f)) and (ex=true) do
          begin
             readln(f,linea);
                if sn=linea then
                        begin
                             for i := 1 to 10 do
                               begin
                                 Readln(f,linea);
                                 asignarlinea(i,linea);
                               end;
                             readln(f,bx);
                             readln(f,by);
                             ex:=false;
                        end;
          end;
       closefile(f);
   end;[/font]
[FONT='Calibri','sans-serif']procedure juego.pintarpieza(F,C: Integer; Pant: TCanvas);
var x,y:integer;
    fig : char;
begin
  x:= cx+(c-1) * 30;
  y:= cy+(f-1) * 30;
  fig:= p[f,c];
  if fig = pared then
    begin
      pant.Brush.Color:=clLime;
      pant.Pen.Color:=clblack;
      pant.Rectangle(x , y, x+30 , y+30);
      pant.Brush.Color:=clBlack;
      pant.Pen.Color:=clblack;
      pant.Rectangle(x+5, y+4, x+26, y+25);
    end;
  if fig = bicho then
  begin
    pant.Brush.Color:=clyellow;
    pant.Pen.Color:=clblack;
    pant.Ellipse(x,y,x+30,y+30);
    pant.Font.Color:=clblue;
    pant.TextOut(x+5,y+5,('^o^'));
    pant.Brush.Color:=clblack;[/font]
[FONT='Calibri','sans-serif']  end;
  if fig = manzana then
  begin
    pant.Brush.Color:=clRed;
    pant.Pen.Color:=clblack;
    pant.Ellipse(x+4,y+5,x+28,y+30);
    pant.Brush.Color:=clblack;
    pant.Pen.Color:=clblack;
    pant.Ellipse(x+9,y+9,x+13,y+13);
  end;
if fig=camino  then
  begin
   pant.pen.color:=clblue;
   pant.rectangle(x,y,x+30,y+30);
   pant.rectangle(x+2,y+2,x+28,y+28);
  end;[/font]
[FONT='Calibri','sans-serif']
end;
procedure juego.pintarplano(pant: TCanvas);
var f,c:integer;
begin
 for f := 1 to 10 do
   for c := 1 to 10 do
  pintarpieza(f,c,pant) ;
end;
function juego.escamino(f, c: integer): boolean;
begin
  escamino:=p[f,c]=camino;
end;
function juego.esmanzana(f, c: integer): Boolean;
begin
   esmanzana:=p[f,c]=manzana;
end;
function juego.espared(f, c: integer): boolean;
begin
   espared:=p[f,c]=pared;
end;
procedure juego.jugar(tecla: integer; pant: tcanvas);
begin
 if tecla=derecha then
  begin
   if (escamino(by,bx+1)) then
    begin
     p[by,bx]:=camino;
     p[by,bx+1]:=bicho;
     pintarpieza(by,bx,pant);
     pintarpieza(by,bx+1,pant);
     bx:=bx+1;
    end
   else
    begin
     if (esmanzana(by,bx+1)) then
      begin
       p[by,bx]:=camino;
       p[by,bx+1]:=bicho;
       pintarpieza(by,bx,pant);
       pintarpieza(by,bx+1,pant);
       bx:=bx+1;
       puntos:=puntos+1;
      end;
    end;
  end;
if tecla=izquierda then
  begin
   if (escamino(by,bx-1)) then
    begin
     p[by,bx]:=camino;
     p[by,bx-1]:=bicho;
     pintarpieza(by,bx,pant);
     pintarpieza(by,bx-1,pant);
     bx:=bx-1;
    end
   else
    begin
     if (esmanzana(by,bx-1)) then
      begin
       p[by,bx]:=camino;
       p[by,bx-1]:=bicho;
       pintarpieza(by,bx,pant);
       pintarpieza(by,bx-1,pant);
       bx:=bx-1;
       puntos:=puntos+1;
       end;
    end;
  end;
if tecla=arriba then
  begin
   if (escamino(by+1,bx)) then
    begin
     p[by,bx]:=camino;
     p[by+1,bx]:=bicho;
     pintarpieza(by,bx,pant);
     pintarpieza(by+1,bx,pant);
     by:=by+1;
    end
   else
    begin
     if (esmanzana(by+1,bx)) then
      begin
       p[by,bx]:=camino;
       p[by+1,bx]:=bicho;
       pintarpieza(by,bx,pant);
       pintarpieza(by+1,bx,pant);
       by:=by+1;
       puntos:=puntos+1;
       end;
    end;
  end;
if tecla=abajo then
  begin
   if (escamino(by-1,bx)) then
    begin
     p[by,bx]:=camino;
     p[by-1,bx]:=bicho;
     pintarpieza(by,bx,pant);
     pintarpieza(by-1,bx,pant);
     by:=by-1;
    end
   else
    begin
     if (esmanzana(by-1,bx)) then
      begin
       p[by,bx]:=camino;
       p[by-1,bx]:=bicho;
       pintarpieza(by,bx,pant);
       pintarpieza(by-1,bx,pant);
       by:=by-1;
       puntos:=puntos+1;
       end;
    end;
  end;
end;
end.
[/font]

bueno gracias.. espero .. respuejtas.. oh algun link en el foro.. que me sirva de ayuda..[/font]
Responder Con Cita
  #2  
Antiguo 24-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No entiendo. ¿ Tenes las teclas de cursor desactivadas ?

Quizá me equivoque, pero si lo que buscas es detectar si una tecla de cursor fué presionada y accionar según cuál haya sido, podrías hacer
algo parecido a:
Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_LEFT: if PosX > 1 then Dec(PosX);
    VK_RIGHT: if PosX < MAX_X then Inc(PosX);
    VK_DOWN: if PosY > 1 then Dec(PosY);
    VK_UP: if PosY < MAX_Y then Inc(PosY);
    ...
  end;
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-06-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
disculpa por no explicar bien.. bueno si.. ah eso me refiero..
ah que si pulsan la tecla arriba.. el bicho se mueva arriba..
Responder Con Cita
  #4  
Antiguo 24-06-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
como puedo utilizar el evento OnKeyDown.. en mi code..
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
activar boton con secuencia de teclas totote Varios 3 25-04-2008 02:28:01
Teclas de cursor en treeview ascrnet Varios 2 03-01-2008 17:28:28
cambiar teclas de cursor up down por o tras teclas en un TDBGrid lococaceres Conexión con bases de datos 1 13-07-2007 07:01:40
Como obtener Foco de Entrada con las teclas de cursor gluglu Varios 1 11-09-2004 17:24:37
Moverse por un rxdbgrid con teclas cursor nugame Varios 0 19-05-2003 19:37:15


La franja horaria es GMT +2. Ahora son las 23:04:41.


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