Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Movimento col cursore

0 views
Skip to first unread message

Paolo

unread,
Feb 24, 2008, 6:33:42 AM2/24/08
to
Ciao, sto cercando di fare Pacman con pascal, perņ ho dei problemi a farlo
muovere utilizzando il cursore, infatti se utilizzo i comando keypressed e
readkey, il pacman non risponde perfettamente ai comandi, ossia se tengo il
tasto premuto, impiega del tempo prima di partire.
Non esiste una qualche procedure, anche in assembly (che non conosco
minimamente) che mi permetta di farlo rispondere perfettamente ai comandi?


Il Razziatore

unread,
Feb 24, 2008, 8:35:59 PM2/24/08
to
Paolo ha scritto:
> Ciao, sto cercando di fare Pacman con pascal, però ho dei problemi a farlo
> muovere utilizzando il cursore, infatti se utilizzo i comando keypressed e
> readkey, il pacman non risponde perfettamente ai comandi, ossia se tengo il
> tasto premuto, impiega del tempo prima di partire.
> Non esiste una qualche procedure, anche in assembly (che non conosco
> minimamente) che mi permetta di farlo rispondere perfettamente ai comandi?
>
>

La ReadKey/Keypressed sono più che sufficenti. Li ho usati un sacco di
volte nei giochi. Ma tu chiami la ReadKey solo ed esclusivamente quando
un tasto è premuto?

ovvero fai qualcosa del genere

Repeat
If KeyPressed Then Begin
Ch:=ReadKey;
If Ch = #0 Then Snake.ChangeDir(WhatDirection(ReadKey));
End;
Snake.Move;
Until (Ch = Key_Esc) Or Error;

?

Ricordati che i tasti direzionali ( Freccia su freccia giu ecc ) hanno
bisogno di 2 chiamate a ReadKey perché la prima volta ritornano 0.


--
Il Razziatore,
"Lo sviluppo di una nazione si misura anche dallo stato della sua rete
ferroviaria". Camillo Benso Conte di Cavour
"Per tutto quanto non previsto nel presente regolamento il capostazione
deve usare senno e ponderatezza." Regolamento d'esercizio FS
-----------------------------------------------
MSN : IlRazz...@netscape.net
ICQ : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

Paolo

unread,
Feb 26, 2008, 1:30:58 PM2/26/08
to

"Il Razziatore" <ilrazz...@gmail.com> ha scritto nel messaggio
news:47c21b82$0$4790$4faf...@reader4.news.tin.it...


Esatto io utilizzo circa quei comandi.
Ho gia fatto il gioco Snake, e per quello sono sufficienti, perchè una volta
che imposti la direzione, il verme la mantiene, ma per il pacman, bisogna
anche fare delle curve o muoversi tenendo premuto il tasto. Per esempio, con
il readkey se tengo premuta la freccia in alto, il pacman, fa un passo verso
l'alto, si ferma un secondo, e poi parte ad una buona velocità, mentre in
teoria dovrebbe partire subito. Pensavo che qualche procedura in assembly
potesse venirmi in soccorso.

Paolo


Dreadnaut

unread,
Feb 26, 2008, 2:21:19 PM2/26/08
to
"Paolo" <men...@nospamtele2.it> ha scritto:

> Pensavo che qualche procedura in assembly potesse venirmi in soccorso.

Il problema è che le procedure standard (keypressed e readkey) leggono
l'input che arriva attraverso il sistema operativo e quindi i parametri
che settano la velocità di ripetizione dei tasti.

Con l'assembler puoi scavalcare il SO e leggere direttamente gli eventi da
tastiera, tipo tasto-premuto o tasto-sollevato, senza attese o pause.

Prova a dare un'occhiata qua ad esempio:
- http://www.programmersheaven.com/zone24/cat579/index.htm

--
Dreadnaut - http://dreadnaut.altervista.org/
(Life would be easier if I had the source code)

0 new messages