Oppure

Loading
02/09/14 21:25
Bonnox
Salve ciao, mi spiace tormentarvi con quesiti assurdi ma mi servono per realizzare un buon applicativo, e la differenza si sente.

Questa volta la faccenda è un po' più complicata

mi serverebbe poter dare un doppio metodo di imput, ovverosia tastiera e mouse. esempio: vi ricordate il IDE pascal, quello verde e grigio, con il campo di testo blu! quello si che è un programma fatto bene! tu potevi premere F9 o clickare su compila e funzionava benissimo... invece a me vengono sempre robe scrause :sob:
:d
va solo il mouse! cioè, la tastiera non la c*** neanche di striscio!!! :rofl: Help
ecco il mio prototipo che ho combinato:


program prova_topo;
uses crt, mouse;

var
	topo:	tmouseevent;
	tasto:	char;
	x,y:	shortint;
	input:	boolean;




procedure getinput; (*e' il cardine. in teoria dovrebbe permettere il doppio input*)

begin

input:=false;

if keypressed then
				begin
				 tasto:=readkey;
				 input:=true;
				end;

getmouseevent(TOPO);
(*se il topo si muove*)
if topo.action>0 then
					begin
					 x:=topo.x;
					 y:=topo.y;
					 input:=true;
					end;
(*ero tentato di mettere la ricorsione qua dentro, poi mi sono accorto che non serve*)

end; (*fine procedura*)



(*inizio programma principale*)

begin
 tasto:='q'; (*non serve a niente se non per inizializzare*)
 initmouse;
 writeln ('prova topo, premere esc');
 while tasto<>#27 do
 begin
  
  
  cursorbig;
  
  
   repeat
   
    getinput;
		 
   until input=true;
   
   if tasto='w' then y:=y+1;
   if tasto='a' then x:=x-1;
   if tasto='s' then y:=y+1;
   if tasto='d' then x:=x+1;
   
   (*lo s che non ho messo i limiti a 25 e 80 ma e' per risparmiare tempo*)
   
 
  gotoxy (x,y);
  write (tasto);
  
 end; (*uscita*)



 donemouse;

end.



grazie, buonasera:k:
Ultima modifica effettuata da Bonnox 02/09/14 21:36
aaa
03/09/14 18:46
Poggi Marco
Ciao!

Il tuo programma non funziona perché non è possibile ottenere input dal mouse e tastiera contemporaneamente.
aaa
03/09/14 20:06
Bonnox
intanto grazie della risposta.

come è possibile? ci sono diversi programmi per dos che funzionano benissimo con entrambi i metodi!
uno ad esempio è l'IDE di turbo pascal/free pascal, l'ho visto con i miei occhi! Lungi da me di darti del bugiardo; ma vorrei capire meglio la tua affermazione.

Bisogna forse implementare qualcosa a basso livello? devo modificare l'algoritmo?

mi ci sto arrovellando su un po'.

il problema è che il mouse mi serviva solo per muovere il cursore, mentre i comandi del programma erano ancora delegati alla tastiera, per far prima sia ad usare che a programmare, non penso che molti abbiano voglia di star lì 20-40 volte a premere WASD, quindi volevo aggiungere il supporto per il mouse, ma non in maniera esclusiva.

grazie ciao
Ultima modifica effettuata da Bonnox 03/09/14 20:12
aaa