请各位前辈关照 一个高中生(100分)

  • 主题发起人 主题发起人 bobcao
  • 开始时间 开始时间
B

bobcao

Unregistered / Unconfirmed
GUEST, unregistred user!
碰撞测试 10个对象{例如10个矩形},在一定区域里任意移动。
如何检测他们是否相撞?
我想通过对象的坐标确定,如何知道坐标呢?{image.canvas.rectangle(x1,y1,x2,y2)}
10个对象是随机移动的。
Thanks!
 
使用API IntersectRect判断两个矩形是否有重叠部分,没有返回0,否则不为0
if IntersectRect(DstRect,SrcRect1,SrcRect2)>0 then
//处理相撞
SrcRect1,SrcRect2是要监测的两个矩形,DstRect返回重叠部分
 
Delphi中的VCL构件如Frame、Panel均很容易跟踪其四角的坐标(Left,Top,Right,
Bottom),有了它们,使用IntersectRect即可。
 
多人接受答案了。
 

Similar threads

后退
顶部