Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Personaggio che si muove sotto controllo
Forum - Pascal - Personaggio che si muove sotto controllo - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 15:15
Domenica, 04/08/2013
ok grazie mille!!
scusa l'ultima curiosità e poi smetto davvero: ma nella modalità grafica si può usare un repeat...until o almeno ritornare nella modalità normale senza chiudere la modialità grafica?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 17:30
Domenica, 04/08/2013
Non ci dovrebbero essere problemi a chiudere o aprire la modalità grafica - basta usare le istruzioni apposite -.
Come hai impostato il programma? ( Posta il codice )

PM Quote
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 16:28
Lunedì, 05/08/2013
ecco qua il programma; ho scritto un commento laterale al punto in cui mi serve aiuto.

Codice sorgente - presumibilmente Delphi

  1. Program grafica;
  2. Uses graph,Crt;
  3. var     Scheda,Modo:smallInt;
  4.         c:char;
  5. bEGIN
  6. Scheda:=detect;
  7. modo:=0;
  8. Initgraph(scheda, modo, '');
  9. If Graphresult<>grOK then
  10.   Writeln('ERRORE: modalità grafica non installata correttamente')
  11. else
  12. begin
  13.   {colline sinistra}
  14.   setcolor(2);
  15.   Arc(200,200,0,180,50);
  16.   line(150,200,150,700);
  17.   line(250,200,250,700);
  18.   line(150,700,250,700);
  19.   SETFILLSTYLE(1,2);
  20.   floodfill(200,300,2);
  21.   setcolor(0);
  22.   line(175,200,175,225);
  23.   line(225,200,225,225);
  24.   setcolor(2);
  25.   Arc(300,400,0,180,50);
  26.   line(250,450,250,700);
  27.   line(350,400,350,700);
  28.   line(250,700,350,700);
  29.   SETFILLSTYLE(1,2);
  30.   floodfill(270,600,2);
  31.   setcolor(0);
  32.   line(275,375,275,400);
  33.   line(325,375,325,400);
  34.   delay(500);
  35.   {colline destra}
  36.   setcolor(2);
  37.   Arc(1100,200,0,180,50);
  38.   line(1050,200,1050,700);
  39.   line(1150,200,1150,700);
  40.   line(1050,700,1150,700);
  41.   SETFILLSTYLE(1,2);
  42.   floodfill(1100,300,2);
  43.   setcolor(0);
  44.   line(1075,200,1075,225);
  45.   line(1125,200,1125,225);
  46.   setcolor(2);
  47.   Arc(1200,400,0,180,50);
  48.   line(1150,450,1150,700);
  49.   line(1250,400,1250,700);
  50.   line(1150,700,1250,700);
  51.   SETFILLSTYLE(1,2);
  52.   floodfill(1170,600,2);
  53.   setcolor(0);
  54.   line(1175,375,1175,400);
  55.   line(1225,375,1225,400);
  56.   setcolor(15);
  57.   SETTEXTSTYLE(triplexfont,horizdir,5);
  58.   outtextxy(250,200,'SUPER MARIO PASCAL');
  59.   delay(1000);
  60.   outtextxy(200,300,'1: GIOCA SINGOLO');
  61.   OUTTEXTXY(200,400,'2: GIOCA IN DUE ');
  62.   SETVIEWPORT(100,300,900,900,false);
  63.   c:=readkey;
  64.   if c=#49 then                 //ecco qua: vorrei fare in modo che io possa usare la readkey senza uscire dalla
  65.                                      //finestra grafica premendo il tasto nella finestra del pascal normale
  66.   outtextxy(200,300,'prova');
  67.   delay(10000);
  68.   //halt;   commento il comando halt   //}
  69.   closegraph;
  70. end;
  71. readln;
  72. end.



spero di essermi spiegato correttamente

Ultima modifica effettuata da Phi il 27/10/2013 alle 20:45
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:09
Martedì, 06/08/2013
Con la grafica del pascal, non credo sia possibile interagire direttamente con la tastiera. - Bisogna attivare la seconda finestra a terminale. -
In alternativa, è possibile utilizzare il mouse.
( http://www.pierotofy.it/pages/guide_tutorials/Pascal/Pasca ... )

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 15:49
Venerdì, 27/09/2013
Salve,
ricordo che col pascal, anche in modalità grafica, Read e ReadKey funzionavano perfettamente...
dalla grafica esce all'istruzione closegraph
per cui per evitare di uscire troppo presto, inserisci le istruzioni di input in un ciclo del genere:

Codice sorgente - presumibilmente Delphi

  1. Repeat
  2.     c:=readkey;
  3.     if c=#49 then
  4.         outtextxy(200,300,'prova');
  5. Until c = #13 (* il tasto invio *)



inoltre per il disegno dell'omino su uno sfondo qualunque ( e non per forza monocromatico ) ti consiglio di studiare le istruzioni GetImage e PutImage

Ciao. :k:

Luigi


PM Quote
Avatar
lorenzoscarrone (Normal User)
Pro


Messaggi: 92
Iscritto: 16/11/2011

Segnala al moderatore
Postato alle 23:53
Giovedì, 17/10/2013
Codice sorgente - presumibilmente Delphi

  1. const r = 10;
  2. var tasto:char;
  3.      x,y:integer;
  4.      a,b:smallint;
  5. begin
  6.  a=detect;
  7.  initgraph(a,b,'');
  8.  x=50;y=50;
  9.    repeat
  10.    setcolor(black);
  11.    circle(x,y,r); //cancella il vecchio cerchio
  12.     tasto = readkey;
  13.     case tasto of:
  14.     'a': x=x-1; //ti muovi a sx
  15.     's': y=y+1; //ti muovi giù
  16.     'd': x=x+1; //ti muovi dx
  17.     'w': y=y-1; //ti muovi sù
  18.     end;
  19.     setcolor(white); //disegna quello nuovo
  20.     circle(x,y,r);
  21.    until false;
  22. end.


scusa eventuali errori ma è parecchio che non uso più pascal ;) in teoria dovrebbe funzionare;) :k:

Ultima modifica effettuata da Phi il 27/10/2013 alle 20:43
PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 20:32
Domenica, 27/10/2013

Ultima modifica effettuata da Phi il 27/10/2013 alle 20:49
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo