Программа на 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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]