WASD控制移动,做一个小球控件,然后在做两个红球控件,红球控件用随机函数来控制其移动,如果小球和红球过于接近,显示:危险,如果碰到显示 游戏失败,红球碰到墙壁后反弹,就这样行了!!
随便,说了数据我会改
两个红球随即移动!!1数据可以随便给,我会自己更改到合适的数据,主要我不知道怎么判断有没有撞到和碰墙反弹
追答Function Inersect(x1 As Integer, y1 As Integer, w1 As Integer, h1 As Integer, x2 As Integer, y2 As Integer, w2 As Integer, h2 As Integer)
Dim cx1, cy1, cx2, cy2 As Integer
'第一个矩形的中心点
cx1 = x1 + (w1 / 2)
cy1 = y1 + (h1 / 2)
'第二个矩形的中心点
cx2 = x2 + (w2 / 2)
cy2 = y2 + (h2 / 2)
Dim dx, dy As Integer
'中心点的距离
dx = Abs(cx1 - cx2)
dy = Abs(cy1 - cy2)
Dim dx2, dy2 As Integer
'横纵坐标的距离
dx2 = Abs(x2 - x1)
dy2 = Abs(y2 - y1)
If dx < dx2 Or dy < dy2 Then '判断纵坐标或横坐标的距离,如果小于,则相交,否则不相交
CrossRect = True
Else
CrossRect = False
End If
End Function
可以用上面的函数判断两个矩形是否相交,相交则撞到了,没有相交则没接到。至于你说的撞到墙反弹,这个不懂
意思是:如果两个的长度或者宽度的距离有一部分重叠了就带包香蕉,我差不多知道了,撞墙反弹意思是就是碰到边角的时候往回走,就跟折射原理差不多,1!!!!i am busy ,
追答反弹你可以写个简单的,就对折,两个角度是相等的。
求代码