Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизПомогите запустить паровозик по синусоиде :) Найти похожие ветки
← →
MaxAir © (2005-04-05 13:27) [0]Нужно написать программу которая бы рисовала паровозик из разноцветных блоков причем контуры все тоже из разного цвета! а потом запустить его движение по синусоиде(ну или хотя бы по прямой) если у кого есть готовая киньте. Заранее спасибо надеюсь в орех не попаду :)
← →
MBo © (2005-04-05 14:14) [1]
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure RefreshBMP;
end;
const
s = "чухчухчух!";
Len = Length(s);
var
Form1: TForm1;
b: TBitmap;
N: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
b := TBitmap.Create;
b.Width := ClientWidth;
b.Height := ClientWidth;
DoubleBuffered := True;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
if b.Width <> ClientWidth then
b.Width := ClientWidth;
if b.Height <> ClientHeight then
b.Height := ClientHeight;
RefreshBMP;
Canvas.Draw(0, 0, b);
end;
procedure TForm1.RefreshBMP;
var
i, w, h, x, y: Integer;
begin
w := b.Width;
h := b.Height;
PatBlt(b.Canvas.Handle, 0, 0, w, h, BLACKNESS);
b.Canvas.Font.Name := "Arial";
b.Canvas.Font.Size := 24;
w := w - 24;
h := h - 30;
for i := 1 to Len do begin
SetBkColor(b.Canvas.Handle, Random($FFFFFF + 1));
X := Round(w + w * Sin((N - i) / 12)) div 2;
Y := Round(h + h * Sin((N - i) / 9)) div 2;
b.Canvas.TextOut(x, y, s[i]);
if (i=1) and (N mod 20<5) then
b.Canvas.TextOut(x-5, y-40, "ту-ту");
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(N);
Refresh;
end;
← →
MaxAir © (2005-04-05 15:29) [2]спасибо большое ! немного не то но дальше я сам :)
← →
parovoZZ © (2005-04-07 09:09) [3]Мне тоже приятно.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c