Snow

 
 

program snow;

uses types,quickDraw,events,miscTool;


type

  snow = record

    x: integer;

    y: integer;

    speed: integer;

  end; 


var

  i,slide: integer;

  tick: longInt;

  snows: array[1..100]of snow;

 

begin

  tick := getTick;

 

  graphics(320);

  setRandSeed(getTick);

  hideCursor;

  clearScreen(0);

 

  { Setup snow }

 

  for i:= 1 to 100 do begin

    snows[i].x := random mod 320;

    snows[i].y := i*10;

    snows[i].speed := random mod 10+1;

  end;

 

  repeat

    for i := 1 to 100 do begin

      slide := random mod 11-5;

     

      { Erase snow }

     

      setSolidPenPat(0);

      moveTo(snows[i].x,snows[i].y);

      line(0,0);

     

      { Move snow }

     

      snows[i].y := snows[i].y+snows[i].speed;

      snows[i].x := snows[i].x+slide;

      if snows[i].y > 190 then begin

        snows[i].y := 0;

        snows[i].x := random mod 320;

        snows[i].speed := random mod 10+1;

      end;

     

      { Draw snow }

     

      setSolidPenPat(15);

      moveTo(snows[i].x,snows[i].y);

      line(0,0);

    end;

 

    repeat until getTick-tick > 5;

    tick := getTick;

  until button(0);

end.     

It is snowing! Merry Christmas!


It demonstrate the use of type and array, to generate multiple objects. This is Ding Wen’s first program on multiple object animation.


You can see the alternate Orca/Pascal version here. Orca/Pascal version is written using Object Pascal, an object oriented extension of the Pascal language.