#include <vcl.h> #pragma hdrstop #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int x, y; // положение мячика int dx, dy; // приращение координат int r; // радиус мячика TColor cBall; // цвет мячика TColor cBack; // цвет поля int wp, hp; // размер поля (формы) // конструктор формы __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { r = 5; // радиус мячика x = r; y = 50; // начальное положение мячика dx = 1; dy = 1; cBall = (TColor)RGB(217, 217, 25); // цвет мячика cBack = (TColor)RGB(33, 94, 33); // цвет поля Form1->Color = cBack; wp = Form1->ClientWidth; hp = Form1->ClientHeight; // настройка таймера Timer1->Interval = 10; Timer1->Enabled = true; } // сигнал от таймера void __fastcall TForm1::Timer1Timer(TObject *Sender) { // стереть изображение мяча Form1->Canvas->Pen->Color = cBack; Form1->Canvas->Ellipse(x,y,x+r,y+r); // ** вычислить новое положение мяча ** if ( dx > 0 ) { // мяч движется вправо if ( x + dx + r > wp ) dx = - dx; } else // мяч движется влево if ( x + dx - r < 0 ) dx = -dx; if ( dy > 0 ) { if ( y + dy + r > Form1->ClientHeight ) dy = -dy; } else { // мяч движется вверх if ( y + dy - r < 0 ) dy = -dy; } x += dx; y += dy; // нарисовать мяч в новой точке Form1->Canvas->Pen->Color = cBall; Form1->Canvas->Ellipse(x,y,x+r,y+r); } |