Kezdőoldal » Számítástechnika » Programozás » Pascalban a w, a, s, d -nek...

Pascalban a w, a, s, d -nek mi a kódja? (#27 ilyenekre gondolok)

Figyelt kérdés
2011. jan. 23. 19:14
1 2
 1/13 anonim ***** válasza:
2011. jan. 23. 19:19
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:
nem erre gondoltam ilyet én is találtam, de pl a #72 az a pascalban a felfele nyíl itt meg a 'h' gomb. én is keresgéltem, de nem találom sehol :S
2011. jan. 23. 19:23
 3/13 anonim ***** válasza:

Az ez előbbi linkből kinyerhető a válasz ebben a kódok ugyanabba a sorrendbe #119 #97 #115 #100.

Egyébként az nem igaz hogy a felfele nyíl kódja #72, ennek dupla kódja van #0 #72.

Írtam egy kis programot amivel meg lehet tudni bármelyik billentyű kódját.


uses

crt;

var

ch:char;

begin

writeln('Kilepes esc ...');

repeat

ch:=readkey;

write('#',ord(ch),' ');

until ch=#27;

writeln;

writeln('kilepeshez nyomjon egy billentyut ...');

readkey;

end.

2011. jan. 23. 20:54
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:
köszönöm ! :)
2011. jan. 24. 09:06
 5/13 A kérdező kommentje:

Lehet hülyének fogtok nézni, de pl egy alakzat irányításánál ez így nem működik. Viszont, ha azt írom be h #72, #77, #80, #75, akkor a nyilakkal tudom irányítani , de nullákat nem írtam bele és jó, de w,a,s,d-vel nem megy :S mi a baj?


case ch of

#119 : if y-5>=0 then y:=y-5;

#97 : if y+5<=440 then y:=y+5;

#115 : if x-5>=0 then x:=x-5;

#100 : if x+5<=602 then x:=x+5;

end;

2011. jan. 24. 09:14
 6/13 anonim ***** válasza:

Semmi baj, nem nézlek hülyének csak amatőrnek, biztos te tetted fel ezt a kérdést is:

http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..

Úgy kell elképzelni, hogy ha nyíl billentyűt nyomsz akkor a pascal program úgy érzékeli hogy megnyomtál egy #0 kódú gombot majd villámgyorsan egy másik gombot is.

Mert előtte ezek vannak

ch := readkey;

if ch=#0 then begin

ch := readkey;"


Ezek szerint nem érted a kódot.

Elmagyarázom:

ch := readkey; Ez az jelenti hogy ch változóba eltárolod a billentyűzetpufferről érkező karaktert.


if ch=#0 then begin Ha a ch változóban tárolt érték #0 akkor végrehajtom a következő utasításokat ... w, a, s, d gombok esetén ez sose teljesülhet.

ch := readkey; Ezt már írtam.

2011. jan. 24. 14:59
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:
köszi, megcsináltam úgy, hogy a w,a,s,d vel lehessen irányítani, még annyi kérdésem lenne, hogy egyszerre 2 alakzatot lehet irányítani /tud irányítani a program?
2011. jan. 24. 18:28
 8/13 A kérdező kommentje:

mert így próbálkoztam :

program Pelda30;

uses graph, wincrt;

var gd,gm,i,j: integer;

p,p1: pointer;

x,y,x1,y1:integer;

ch1:char;

begin

x1 := 5;

y1 := 5;

x := 205;

y := 5;

{ grafika inicializalasa }

gd := d4bit;

gm := m640x480;

initgraph(gd,gm,'');

{ rajzolas }

bar(10,10,30,30);

bar(210,10,230,30);

{ memoria lefoglalasa }

getmem(p1,imagesize(10,10,30,30));

getmem(p,imagesize(210,10,230,30));

{ kep megjegyzese }

getimage(5,5,35,35,p1^);

getimage(205,5,235,35,p^);

repeat



ch1:=readkey;

repeat

delay(40);

case ch1 of


#56 : if y-5>=0 then y:=y-5;

#50: if y+5<=440 then y:=y+5;

#54 : if x-5>=0 then x:=x-5;

#52 : if x+5<=602 then x:=x+5;


#119 : if y1-5>=0 then y1:=y1-5;

#115 : if y1+5<=440 then y1:=y1+5;

#97 : if x1-5>=0 then x1:=x1-5;

#100 : if x1+5<=602 then x1:=x1+5;



end;


putimage(x,y,p^,copyput);

putimage(x1,y1,p1^,copyput);

until keypressed;

until ch1=#27;


{ grafikus mod bezarasa }

closegraph;

end.



de kicsit érdekesen működik :D

2011. jan. 24. 18:48
 9/13 A kérdező kommentje:
még annyit szeretnék megkérdezni, hogy a getpixel(x,y)hogy működik? hogy lehet egy beolvasott szín-t kinyerni? egy számot fog adni?
2011. jan. 24. 18:49
 10/13 anonim ***** válasza:

Rosszul foglaltad le a memóriát. Az i és j használatlan változót kiszedtem. A #119 helyett írhatsz 'w' -t meg a többi karakter helyett is, ezeket kicseréltem így áttekinthetőbb a kód. A lefoglalt memóriát illik felszabadítani.(Ez nem okoz gondot ,de mondjuk egy DOS rendszeren igen.)

program Pelda30;

uses graph, wincrt;

var gd,gm: integer;

p,p1: pointer;

x,y,x1,y1:integer;

ch1:char;

begin

x1 := 5;

y1 := 5;

x := 205;

y := 5;

{ grafika inicializalasa }

gd := d4bit;

gm := m640x480;

initgraph(gd,gm,'');

{ rajzolas }

bar(10,10,30,30);

bar(210,10,230,30);

{ memoria lefoglalasa }

getmem(p1,imagesize(5,5,35,35));

getmem(p,imagesize(210,10,235,35));

{ kep megjegyzese }

getimage(5,5,35,35,p1^);

getimage(205,5,235,35,p^);

repeat



ch1:=readkey;

repeat

delay(40);

case ch1 of


'8' : if y-5>=0 then y:=y-5;

'2' : if y+5<=440 then y:=y+5;

'6' : if x-5>=0 then x:=x-5;

'4' : if x+5<=602 then x:=x+5;


'w' : if y1-5>=0 then y1:=y1-5;

'a' : if y1+5<=440 then y1:=y1+5;

's' : if x1-5>=0 then x1:=x1-5;

'd' : if x1+5<=602 then x1:=x1+5;



end;


putimage(x,y,p^,copyput);

putimage(x1,y1,p1^,copyput);

until keypressed;

until ch1=#27;


{ grafikus mod bezarasa }

closegraph;

{memoria felszabaditas}

freemem(p1);

freemem(p);

end.

2011. jan. 24. 21:03
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!