Pascal/Turbo Pascal - ayuda con graph (muy basico *principiante*)

 
Vista:

ayuda con graph (muy basico *principiante*)

Publicado por Matias (1 intervención) el 07/12/2006 01:26:48
Lo que yo quiero hacer es mover un personaje por la pantalla utilizando el teclado.
Con la unidad CRT lo que yo hacia era:

game:=readkey;
if game='a' then x:=x-1;
if game='d' then x:=x+1;
if game='s' then y:=y+1;
if game='w' then y:=y-1;
gotoxy(x,y);
write('☻');

Lo que hacia este codigo era que yo pueda mover una carita por la pantalla con las teclas a,s,d,w.

Lo que ahora intento hacer (y no se como) es mover en vez de una carita, un personaje dibujado:

setfillstyle(1,2);
bar(1,1,639,479);
setfillstyle(1,6);
bar(310,230,318,245);
setfillstyle(1,0);
bar(311,224,317,230);
bar(311,246,313,249);
bar(315,246,317,249);
setcolor(7);
line(303,228,310,239);

alguien me podria decir como por fabor???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con graph (muy basico *principiante*)

Publicado por Diego Romero (996 intervenciones) el 07/12/2006 04:03:58
La solución pasaría por usar los procedimientos GetImage, PutImage e ImageSize. Aquí el código de ejemplo que está en la ayuda de Turbo Pascal:

var
Gd, Gm: Integer;
P: Pointer;
Size: Word;
begin
Gd := Detect;
InitGraph(Gd, Gm, ' ');
if GraphResult <> grOk then
Halt(1);
Bar(0, 0, GetMaxX, GetMaxY);
Size := ImageSize(10, 20, 30, 40);
GetMem(P, Size); { Localizar memoria en el heap }
GetImage(10, 20, 30, 40, P^);
Readln;
ClearDevice;
PutImage(100, 100, P^, NormalPut);
Readln;
CloseGraph;
end.

Lo que hace esto es capturar una región de pantalla (que no es más que una porción de memoria) apuntándola con un puntero genérico, luego se mueve esa región a otra parte de la pantalla.
Aviso que este proceso es *lento*.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar