Newsgroup: it.comp.lang.pascal
Titolo: Come faccio a fare un gioco che che funzioni con la tastiera ?

Hi everybody chi sà come fare un qualsiasi gioco che si muova con le
freccette della tastiera oppure usando il mouse ?
Chi mi risponde andrà in paradiso....
Ciao  seba
01069...@iol.it

 Chi mi risponde andrà in paradiso....
ci andrò comunque...
Questo e' il modo piu' semplice,
ma anche il meno adatto per un gioco d'azione.
per il mouse non ne ho idea,soppongo ci vogliano gli Object.
pero' da qui a farne un gioco cene vuole...
program pippo;
uses crt;
var muovi:char;x,y:byte;
begin
repeat
  x:=wherex;
  y:=wherey;
  muovi:=readkey;
  if muovi=#0
  then
    begin
      muovi:=readkey;
      case muovi of
                    #72:gotoxy(x,y-1);      {up}
                    #80:gotoxy(x,y+1);     {down}
                    #75:gotoxy(x-1,y);      {left}
                    #77:gotoxy(x+1,y);     {right}
      end
    end
until muovi=#27;
end.

Mi puoi spiegare il significato di #?
Vedo che per uscire si deve premere il tasto ESC come si fa per
attivare i tast F1, F2, F3 ecc?


In Turbo/Borland Pascal, il carattere #numero equivale a chr(numero).....è
una forma più compatta di scrivere la stessa cosa.
Per leggere il codice del pulsante premuto sulla tastiera puoi seguire
questo procedimento:
var
    ch, chx: char;
....
....
begin
        repeat
            ch := readkey;
            write('Hai premuto il tasto :');
            if ch=#0 then  { codice esteso }
                begin
                        chx := readkey;
                        case chx of
                            ';': writeln('F1');
                            '<': writeln('F2');
                            '=': writeln('F3');
                        end;
                end
                else
                case ch of
                    #13 : writeln('invio');
                    #27 : writeln('invio');
                end;
        until ch=#27;
end.
Ciao!
Simone.
=================================
e-mail:  
drfa...@libero.it
 
drfa...@tiscalinet.it
web:     
http://www.tiscalinet.it/drfalken
 
http://free.prohosting.com/~drfalken
Mailing list: 
ml_ass...@egroups.com
 (per l'iscrizione invia un msg a
 
ml_assemble...@egroups.com
)
ICQ#:  19598133
=================================

Altra possibilita' :
la variabile muovi assume valore 1 premendo Ctrl sinistro
                                            valore 2 premendo Alt sinistro
la variabile spara assume valore true premendo Shift destro
ha il vantaggio di essere indipendente da altri tasti e non passa per
il buffer della tastiera,quindi non ha ne' ritardi ne' saturazione
il programma mostra il valore delle variabili sullo schermo
program pippo2;
 uses crt;
var
 muovi:byte absolute $0040:$0018;
 uccidi:byte absolute $0040:$0017;
 spara : boolean;
begin
   repeat
     writeln(muovi,'    ',uccidi,'    ',spara);
        case uccidi of
                            13,9,5,1,
                             33,41,37:spara := true;
                            else  spara := false;
       end
   until keypressed;
 end.

Grazie....


grazie by Seba
ciao
Xbug

...


carattere:=readkey;
...un punto dopo "readkey" Why? Sono io che son scemo? ho e la macchina che
mi piglia pe o culo?
(il programma l'ho ricontrollato tante volte ed č uguale a quello che hai
spedito)
Seba


E' vero,ho provato e così non va,ho sbagliato ad aggiungere la prima
riga
program readkey;
non si puo' chiamare readkey,toglila o cambia il nome e funziona.
normalmente io non metto quella riga perchè funziona ugualmente.
questo è un errore che non avevo mai letto prima.
Se premi F1 ti dice qual'è il tipo di errore:
**This may indicate that a type is being used as
a variable or that the name of the program
itself overrides an important identifier from
another unit.**
PS : Ma tu che versione di TP hai ?

you wrote :
#> Mi puoi spiegare il significato di #?
#> Vedo che per uscire si deve premere il tasto ESC come si fa per
#> attivare i tast F1, F2, F3 ecc?
#
#Per leggere il codice del pulsante premuto sulla tastiera puoi seguire
#questo procedimento:
In ogni caso, il tuo metodo non funziona bene nel caso si voglia
gestire la pressione di piu' tasti contemporaneamente.
Supponi per esempio di costruire una corsa automobilistica, in cui
alla pressione della freccetta in su corrisponde l'accelerazione e a
quella delle freccette laterali la sterzata : nessuno accetterebbe che
per sterzare bisogna rilasciare l'acceleratore ;)
Per gestire piu' tasti contemporaneamente bisogna interagire con la
porta $60 della tastiera.
........................................................
. Andrea Laforgia        (
andrea_...@bigfoot.com
) .
........................................................

you wrote :
#INTERRUPT DEL BIOS ????????
Interrupt $33 per la precisione ;)


Interrupt $33 per la precisione ;)
Son contento che è $33 ma se non sò cos'è l'interrupt del bios sarà ben
dura...
Seba

>PS : Ma tu che versione di TP hai ?
Turbo pascal 7.0
seba

 wrote in message
FdXA3.93360$6C.2...@typhoon.libero.it...

ma non hai un libro, un manuale,qualcosa su cui studiare ?
non si puo' spiegare in poche parole se non ne sai niente.

non si puo' spiegare in poche parole se non ne sai niente.
Ne ho diecimila manuali ma sta cosa non lo mai sentita ???
Sai dirmi dove posso trovare dei manuali nella rete??
Seba


non hai un manuale che spiega gli interrupt ?
qualunque cosa sull'assembly per esempio va bene
ma anche il manuale del pascal ne parla.
in rete si qualcosa lo trovi ma non so bene dove
io non segno gli indirizzi, non li ricordo.

you wrote :
#Son contento che è $33 ma se non sò cos'è l'interrupt del bios sarà ben
#dura...
In effetti e' dura riuscire a scrivere un gioco se non si conosce cosa
sia un interrupt.
Cerca in rete la lista di Ralph Brown.
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------