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
OMINO 3 - OMINO3.PAS

OMINO3.PAS

Caricato da:
Scarica il programma completo

  1. Program omino;    {NOTA: per ottimizzare il programma modificare
  2.                          il tempo di durata della funzione delay
  3.                          in base alle prestazioni del proprio calcolatore.
  4.                          Se questa operazione non viene effettuata Š probabile
  5.                          che il salto del personaggio non sia visualizzato correttamente }
  6.  
  7. Uses graph3,crt;
  8.  
  9. Var
  10.       x0,y0,x,y,p,i,q,z:INTEGER;
  11.       c,F:CHAR;
  12.  
  13. Procedure traccia_assi;
  14.    Begin
  15.      Draw (0,199,0,0,1);
  16.      Draw (1,199,1,0,1); {asse di destra verticale}
  17.      Draw (319,199,319,0,1);
  18.      Draw (318,199,318,0,1); {asse di sinistra verticale}
  19.      Draw (0,199,319,199,1);
  20.      Draw (0,198,319,198,1); {asse in basso orizzontale }
  21.      Draw (0,0,319,0,1);
  22.      Draw (0,1,319,1,1); {asse in alto orizzontale }
  23.  
  24.      For i:=1 to 12 do  {ostacolo}
  25.       begin
  26.        circle (70,200,i,1);
  27.       end;
  28.  
  29.    END;
  30.  
  31.  
  32. Begin
  33.      REPEAT
  34.       TEXTCOLOR(4);
  35.       gOTOXY (17,24);
  36.       wRITELN ('ษอออออออออออออออออออออออออออออออออออออออออออออป');
  37.       GOTOXY (17,25);
  38.       WRITELN ('บ               ***** OMINO 2 *****           บ');
  39.       GOTOXY (17,26);
  40.       WRITELN ('บ             EDITED BY ROMANO ADRIANO        บ');
  41.       GOTOXY (17,27);
  42.       WRITELN ('บ                                             บ');
  43.       TEXTCOLOR (10+BLINK);
  44.       GOTOXY (17,27);
  45.       WRITELN ('             PREMI  INVIO  PER  GIOCARE        ');
  46.       TEXTCOLOR (4);
  47.       GOTOXY (17,28);
  48.       WRITELN ('บ                   ISTRUZIONI                บ');
  49.       GOTOXY (17,29);
  50.       WRITELN ('บ    USA IL TASTIERINO NUMERICO PER MUOVERTI  บ');
  51.       GOTOXY (17,30);
  52.       WRITELN ('บ E d/s PER SALTARE RISP. A DESTRA O SINISTRA บ');
  53.       GOTOXY (17,31);
  54.       WRITELN ('บ     PREMI ESC DURANTE IL GIOCO PER USCIRE   บ');
  55.       GOTOXY (17,32);
  56.       WRITELN ('ศอออออออออออออออออออออออออออออออออออออออออออออผ');
  57.       GOTOXY (56,27);
  58.      F:=READKEY;
  59.      UNTIL F=#13;
  60.  
  61. graphmode;
  62. x0:=20;
  63. y0:=190;
  64. Circle(x0,y0,1,3);         {disegna il personaggio nelle coordinate iniziali}
  65. Draw (x0,y0,x0,y0+5,3);
  66. draw (x0,y0+2,x0-2,y0+3,3); {braccio sinistro}
  67. draw (x0,y0+2,x0+2,y0+3,3); {braccio destro}
  68. draw (x0,y0+6,x0-2,y0+7,3);  {gamba sinistra}
  69. draw (x0,y0+6,x0+2,y0+7,3);  {gamba destra}
  70. x:=x0;
  71. y:=y0;
  72. p:=1;
  73.  
  74. Repeat
  75.   BEGIN
  76.   traccia_assi;
  77.   Draw (160,197,160,78,2); {scala}
  78.      Draw (168,197,168,78,2);
  79.      Draw (160,195,168,195,2);
  80.      Draw (160,191,168,191,2);
  81.      Draw (160,187,168,187,2);
  82.      Draw (160,183,168,183,2);
  83.      Draw (160,179,168,179,2);
  84.      Draw (160,175,168,175,2);
  85.      Draw (160,171,168,171,2);
  86.      Draw (160,167,168,167,2);
  87.      Draw (160,163,168,163,2);
  88.      Draw (160,159,168,159,2);
  89.      Draw (160,155,168,155,2);
  90.      Draw (160,151,168,151,2);
  91.      Draw (160,147,168,147,2);
  92.      Draw (160,143,168,143,2);
  93.      Draw (160,139,168,139,2);
  94.      Draw (160,135,168,135,2);
  95.      Draw (160,131,168,131,2);
  96.      Draw (160,127,168,127,2);
  97.      Draw (160,123,168,123,2);
  98.      Draw (160,119,168,119,2);
  99.      Draw (160,115,168,115,2);
  100.      Draw (160,111,168,111,2);
  101.      Draw (160,107,168,107,2);
  102.      Draw (160,103,168,103,2);
  103.      Draw (160,99,168,99,2);
  104.      Draw (160,95,168,95,2);
  105.      Draw (160,91,168,91,2);
  106.      Draw (160,87,168,87,2);
  107.      Draw (160,83,168,83,2);
  108.      Draw (160,79,168,79,2);
  109.      Draw (180,197,180,78,2); {scala2}
  110.      Draw (188,197,188,78,2);
  111.      Draw (180,195,188,195,2);
  112.      Draw (180,191,188,191,2);
  113.      Draw (180,187,188,187,2);
  114.      Draw (180,183,188,183,2);
  115.      Draw (180,179,188,179,2);
  116.      Draw (180,175,188,175,2);
  117.      Draw (180,171,188,171,2);
  118.      Draw (180,167,188,167,2);
  119.      Draw (180,163,188,163,2);
  120.      Draw (180,159,188,159,2);
  121.      Draw (180,155,188,155,2);
  122.      Draw (180,151,188,151,2);
  123.      Draw (180,147,188,147,2);
  124.      Draw (180,143,188,143,2);
  125.      Draw (180,139,188,139,2);
  126.      Draw (180,135,188,135,2);
  127.      Draw (180,131,188,131,2);
  128.      Draw (180,127,188,127,2);
  129.      Draw (180,123,188,123,2);
  130.      Draw (180,119,188,119,2);
  131.      Draw (180,115,188,115,2);
  132.      Draw (180,111,188,111,2);
  133.      Draw (180,107,188,107,2);
  134.      Draw (180,103,188,103,2);
  135.      Draw (180,99,188,99,2);
  136.      Draw (180,95,188,95,2);
  137.      Draw (180,91,188,91,2);
  138.      Draw (180,87,188,87,2);
  139.      Draw (180,83,188,83,2);
  140.      Draw (180,79,188,79,2);
  141.           Draw (168,77,180,77,3); {piano}
  142.       x:=x0;
  143.       y:=y0;
  144.       c:=readkey;
  145.       Circle(x,y,1,0);
  146.       Draw (x,y,x,y+5,0);   {cancella il personaggio alle vecchie coordinate}
  147.       draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  148.       draw (x,y+2,x+2,y+3,0); {braccio destro}
  149.       draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  150.       draw (x,y+6,x+2,y+7,0);  {gamba destra}
  151.  
  152.                               { dopo aver acquisito un carattere da tastiera
  153.                                 modifica le coordinate del personaggio }
  154.  
  155.       If (c=chr(56)) and (x<=195) and (x>=162) and (y>=70) then y:=y-1;
  156.       If (c=chr(50)) and (y<=195) and (x>=162) and (y>=68) and (y<190) then y:=y+1;
  157.       If (c=chr(52)) and (y>189)  and (x>3)    then x:=x-1;
  158.       If (c=chr(52)) and (y<=70)  and (x<=190) and (x>=158) then x:=x-1;
  159.       If (c=chr(54)) and (y>189)  and (x<316)  then x:=x+1;
  160.       If (c=chr(54)) and (y<=70)  and (x<=190) and (x>=158) then x:=x+1;
  161.  
  162.       If (c=chr(53)) and (y>9) and (y<197) then   {salto in alto (5)}
  163.  
  164.       Begin
  165.            for i:=1 to 6 do
  166.              begin
  167.                delay (30);
  168.                y:=y-i;
  169.                Circle(x,y,1,3);
  170.                Draw (x,y,x,y+5,3);
  171.                draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  172.                draw (x,y+2,x+2,y+3,3); {braccio destro}
  173.                draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  174.                draw (x,y+6,x+2,y+7,3);  {gamba destra}
  175.                delay (30);
  176.                Circle(x,y,1,0);
  177.                Draw (x,y,x,y+5,0);
  178.                draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  179.                draw (x,y+2,x+2,y+3,0); {braccio destro}
  180.                draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  181.                draw (x,y+6,x+2,y+7,0);  {gamba destra}
  182.              end;
  183.  
  184.       for i:=6 downto 0 do
  185.         begin
  186.           delay (30);
  187.           y:=y+i;
  188.           Circle(x,y,1,3);
  189.           Draw (x,y,x,y+5,3);
  190.           draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  191.           draw (x,y+2,x+2,y+3,3); {braccio destro}
  192.           draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  193.           draw (x,y+6,x+2,y+7,3);  {gamba destra}
  194.           delay (30);
  195.           Circle(x,y,1,0);
  196.           Draw (x,y,x,y+5,0);
  197.           draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  198.           draw (x,y+2,x+2,y+3,0); {braccio destro}
  199.           draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  200.           draw (x,y+6,x+2,y+7,0);  {gamba destra}
  201.         end;
  202.       end;
  203.  
  204.       If (c=chr(100)) and (y>189) and (x<280) and (x>10) then   {d:salto in avanti a destra}
  205.       Begin
  206.  
  207.        for i:=0 to 6 do
  208.          begin
  209.           delay (30);
  210.           y:=y-i;
  211.           x:=x+i;
  212.           Circle(x,y,1,3);
  213.           Draw (x,y,x,y+5,3);
  214.           draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  215.           draw (x,y+2,x+2,y+3,3); {braccio destro}
  216.           draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  217.           draw (x,y+6,x+2,y+7,3);  {gamba destra}
  218.           delay (30);
  219.           Circle(x,y,1,0);
  220.           Draw (x,y,x,y+5,0);
  221.           draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  222.           draw (x,y+2,x+2,y+3,0); {braccio destro}
  223.           draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  224.           draw (x,y+6,x+2,y+7,0);  {gamba destra}
  225.         end;
  226.  
  227.       for i:=6 downto 0 do
  228.         begin
  229.          delay (30);
  230.          y:=y+i;
  231.          x:=x+i;
  232.          Circle(x,y,1,3);
  233.          Draw (x,y,x,y+5,3);
  234.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  235.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  236.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  237.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  238.          delay (30);
  239.          Circle(x,y,1,0);
  240.          Draw (x,y,x,y+5,0);
  241.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  242.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  243.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  244.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  245.         end;
  246.       end;
  247.  
  248.       If (c=chr(115)) and (y>189) and (x<316) and (x>40) then   {s:salto in avanti a sinistra}
  249.       Begin
  250.  
  251.       for i:=0 to 6 do
  252.         begin
  253.          delay (30);
  254.          y:=y-i;
  255.          x:=x-i;
  256.          Circle(x,y,1,3);
  257.          Draw (x,y,x,y+5,3);
  258.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  259.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  260.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  261.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  262.          delay (30);
  263.          Circle(x,y,1,0);
  264.          Draw (x,y,x,y+5,0);
  265.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  266.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  267.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  268.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  269.         end;
  270.  
  271.       for i:=6 downto 0 do
  272.         begin
  273.          delay (30);
  274.          y:=y+i;
  275.          x:=x-i;
  276.          Circle(x,y,1,3);
  277.          Draw (x,y,x,y+5,3);
  278.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  279.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  280.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  281.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  282.          delay (30);
  283.          Circle(x,y,1,0);
  284.          Draw (x,y,x,y+5,0);
  285.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  286.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  287.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  288.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  289.         end;
  290.       end;
  291.  
  292.       If (c=chr(115)) and (y<=189) and (x<316) and (x>40) then   {s:salto in avanti a sinistra}
  293.       Begin                              {caduta}
  294.  
  295.       for i:=0 to 6 do
  296.         begin
  297.          delay (30);
  298.          y:=y-i;
  299.          x:=x-i;
  300.          Circle(x,y,1,3);
  301.          Draw (x,y,x,y+5,3);
  302.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  303.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  304.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  305.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  306.          delay (30);
  307.          Circle(x,y,1,0);
  308.          Draw (x,y,x,y+5,0);
  309.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  310.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  311.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  312.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  313.         end;
  314.  
  315.       q:=0;
  316.       z:=abs(y-190);
  317.       for i:=1 to z do
  318.         begin
  319.          delay (30);
  320.           q:=q+1;
  321.           y:=y+i;
  322.           x:=x-q;
  323.           Circle(x,y,1,3);
  324.           Draw (x,y,x,y+5,3);
  325.           draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  326.           draw (x,y+2,x+2,y+3,3); {braccio destro}
  327.           draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  328.           draw (x,y+6,x+2,y+7,3);  {gamba destra}
  329.           delay (30);
  330.           Circle(x,y,1,0);
  331.           Draw (x,y,x,y+5,0);
  332.           draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  333.           draw (x,y+2,x+2,y+3,0); {braccio destro}
  334.           draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  335.           draw (x,y+6,x+2,y+7,0);  {gamba destra}
  336.         end;
  337.       end;
  338.  
  339.       If (c=chr(100)) and (y<=189) and (x<316) and (x>40) then   {d:salto in avanti a sinistra}
  340.       Begin                              {caduta}
  341.  
  342.       for i:=0 to 6 do
  343.         begin
  344.          delay (30);
  345.          y:=y-i;
  346.          x:=x+i;
  347.          Circle(x,y,1,3);
  348.          Draw (x,y,x,y+5,3);
  349.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  350.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  351.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  352.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  353.          delay (30);
  354.          Circle(x,y,1,0);
  355.          Draw (x,y,x,y+5,0);
  356.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  357.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  358.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  359.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  360.         end;
  361.  
  362.       q:=0;
  363.       z:=abs(y-190);
  364.       for i:=1 to z do
  365.         begin
  366.          delay (30);
  367.          q:=q+1;
  368.          y:=y+i;
  369.          x:=x+q;
  370.          Circle(x,y,1,3);
  371.          Draw (x,y,x,y+5,3);
  372.          draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  373.          draw (x,y+2,x+2,y+3,3); {braccio destro}
  374.          draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  375.          draw (x,y+6,x+2,y+7,3);  {gamba destra}
  376.          delay (30);
  377.          Circle(x,y,1,0);
  378.          Draw (x,y,x,y+5,0);
  379.          draw (x,y+2,x-2,y+3,0); {braccio sinistro}
  380.          draw (x,y+2,x+2,y+3,0); {braccio destro}
  381.          draw (x,y+6,x-2,y+7,0);  {gamba sinistra}
  382.          draw (x,y+6,x+2,y+7,0);  {gamba destra}
  383.         end;
  384.       end;
  385.  
  386.       Circle(x,y,1,3);         {disegna il personaggio alle nuove coordinate}
  387.       Draw (x,y,x,y+5,3);
  388.       draw (x,y+2,x-2,y+3,3); {braccio sinistro}
  389.       draw (x,y+2,x+2,y+3,3); {braccio destro}
  390.       draw (x,y+6,x-2,y+7,3);  {gamba sinistra}
  391.       draw (x,y+6,x+2,y+7,3);  {gamba destra}
  392.  
  393.       x0:=x;                    {aggiorna le coordinate iniziali}
  394.       y0:=y;
  395.  
  396.     END;
  397.    Until c=#27;
  398. END.