VB6大神求解,高分悬赏,成功给200分!!!!!!!!!!!!!!!!!!!!!!!!!!!!

WASD控制移动,做一个小球控件,然后在做两个红球控件,红球控件用随机函数来控制其移动,如果小球和红球过于接近,显示:危险,如果碰到显示 游戏失败,红球碰到墙壁后反弹,就这样行了!!

第1个回答  2013-02-01
小球是移动的吗?过于接近的具体距离是多少?四面均是墙壁?追问

随便,说了数据我会改

第2个回答  2013-01-21
你说的是什么意思,那个随机的追问

两个红球随即移动!!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 ,

追答

反弹你可以写个简单的,就对折,两个角度是相等的。

追问

求代码

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网