Программа на MIDletPascal 2
type TStar = record X, Y, Z : Integer; end; const MAX_STARS = 1000; HELLO = 'HELLO WORLD!'; SPEED = 500; var i : Integer; Stars : array [1..MAX_STARS] of TStar; scr_W : Integer; scr_H : Integer; time, dt : Integer; procedure SetPix(c: Integer); var sx, sy : Integer; begin sx := trunc(scr_W / 2 + Stars[i].X * 200 / (Stars[i].Z + 200)); sy := trunc(scr_H / 2 - Stars[i].Y * 200 / (Stars[i].Z + 200)); SetColor(c, c, c); Plot(sx, sy); end; begin scr_W := GetWidth; scr_H := GetHeight; randomize; for i := 1 to MAX_STARS do begin Stars[i].X := random(scr_W * 4) - scr_W * 2; Stars[i].Y := random(scr_H * 4) - scr_H * 2; Stars[i].Z := random(1900); end; SetColor(0, 0, 0); FillRect(0, 0, scr_W, scr_H); time := GetRelativeTimeMs; repeat dt := GetRelativeTimeMs - time; time := GetRelativeTimeMs; for i := 1 to MAX_STARS do begin SetPix(0); Stars[i].Z := Stars[i].Z - SPEED * dt/1000; if Stars[i].Z <= -200 then begin Stars[i].X := random(scr_W * 4) - scr_W * 2; Stars[i].Y := random(scr_H * 4) - scr_H * 2; Stars[i].Z := 1900; end; SetPix(trunc(255 - 255 * (Stars[i].Z + 200) / 2100)); end; SetColor(255, 0, 0); DrawText(HELLO, (scr_W - GetStringWidth(HELLO))/2, 0); repaint; until GetKeyClicked = KE_KEY0; end. | |
Категория: Статьи | Добавил: Программист_Админ (05.01.2012) | |
Просмотров: 548 |