回 帖 发 新 帖 刷新版面

主题:集思广益,大家给点思路,关于这个设计游戏想法

现在想做个简单的平面射击游戏,人物的形象是这样想的:
用圆形填充圆来表示身体,用一段线段来表示枪,然后打算用另一条射线表示弹道,当这条射线的延长后碰到另外一个圆圈(另一个人物身体),表示击中,让另一个人物的生命属性减少
这个是我初步的构想,但在具体实施中,发现个问题:就是怎么判断这条射线碰到了另一个圆,就是直线与圆不相离的问题,怎么实现呢
大家帮帮下吧

回复列表 (共10个回复)

沙发

我想你们老师应该教过这样求直线是否与圆相交吧
回去好好看数学书.圆心到直线距离<=R.

板凳

这就要涉及碰撞检测问题,建立坐标来判断。

3 楼

谢谢merry05给的重大提示,现在问题就转变成:谁能给我个关与参数方程公式比较详细的网页,时间太久远了,只是依稀记得一点,需要资料回味下

4 楼

其实btxdlibin的方法会更简单,把射线所在的直线方程与圆的方程联立,如果有解说明有射中的可能性。检测是否射中,就是点是否在圆内!(2D)这样便可以省略很多事情。

而form本身就是一个很好的坐标系!。。。

5 楼

btxdlibin的方法?中文是什么意思

6 楼

btxdlibin的方法行不通,
这个要先求出 枪 这个线段的斜率,然后求出 枪口这个点和圆心这个点连线的斜率,判断这个2个值的差是不是在允许的范围内。

7 楼

[quote]btxdlibin的方法行不通,
这个要先求出 枪 这个线段的斜率,然后求出 枪口这个点和圆心这个点连线的斜率,判断这个2个值的差是不是在允许的范围内。[/quote]

我觉得不用,因为现在要验证的是“射中”,而不是射到圆心,圆是有面积的,只要“枪”所在的直线与圆相交或相切就可以算(可能)“射中”了。
如果圆在子弹飞得过程中会移动的话(人不是笨的),重点是验证子弹是否会在某个时刻内会在圆内(当然,跟踪导弹另当别论)

8 楼


求解的话不会太麻烦吗?
只要弹道(无论是不是直的)的终点到圆心的距离小于半径不就完了吗
两点距离公式:d=((x1-x2)^2-(y1-y2)^2)^0.5

9 楼


你说的那个游戏我做过,你在发射端射箭的时候你的那个箭离最上方窗口的距离未X1,在目标端的那个圆形距离最上的窗口的距离是X2,那么你要先算下,你的那个箭到园的距离,假如是X3,你在设计的时候计箭肯定要设的速度,那么很容易就算出到达的时间,然后你在时间到后,再判断x1是不是大于X2小于(X2+园的直径)



祝你好运[em2]

10 楼

设:
你的目标是某些特定的颜色
你的子弹,是另外一种特定的颜色
射击时,方向由dx、dy来确定,并表示每步子弹前进的长度(速度)。
当下一步子弹的位置上颜色是目标颜色的一种时,击中;
否则,继续。

我来回复

您尚未登录,请登录后再回复。点此登录或注册