Ver Mensaje Individual
  #1  
Antiguo 24-06-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Reputación: 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