首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问怎么写一个一个球与边界相撞的代码?

2012-03-11 
请教如何写一个一个球与边界相撞的代码???一个小球在一个限定区域里做二维直线运动,当小球运行到限定区域

请教如何写一个一个球与边界相撞的代码???
一个小球在一个限定区域里做二维直线运动,当小球运行到限定区域边界时它将自动弹回,反弹遵循反射规律!!!    
如果代码,请发到xzb_97@163.com.

[解决办法]
如果边界是方的,好办

把球也看到一个正方形,与边界重合时做处理
[解决办法]
Form上放一个Panel,一个Button,一个Timer;Panel上放一个Shape

下面是演示Shape在Panel里做你要求的运动:

var
X, Y, M, N : integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1.Width := 20; //一些初始设置
Shape1.Height := 20;
Shape1.Shape := stCircle;
X := Shape1.Left;
Y := Shape1.Top;
M := 1;
N := 1;
Timer1.Enabled := False;
Timer1.Interval := 10;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True; //开始演示
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if X> Panel1.Width-Shape1.Width then M := -1;
if X <1 then M := 1;
if Y> Panel1.Height-Shape1.Height then N := -1;
if Y <1 then N := 1;
Inc(X, M);
Inc(Y, N);
Shape1.Left := X;
Shape1.Top := Y;
end;

热点排行