主题:集思广益,大家给点思路,关于这个设计游戏想法
笑十三狼
[专家分:1040] 发布于 2008-01-31 22:45:00
现在想做个简单的平面射击游戏,人物的形象是这样想的:
用圆形填充圆来表示身体,用一段线段来表示枪,然后打算用另一条射线表示弹道,当这条射线的延长后碰到另外一个圆圈(另一个人物身体),表示击中,让另一个人物的生命属性减少
这个是我初步的构想,但在具体实施中,发现个问题:就是怎么判断这条射线碰到了另一个圆,就是直线与圆不相离的问题,怎么实现呢
大家帮帮下吧
回复列表 (共10个回复)
沙发
btxdlibin [专家分:2430] 发布于 2008-01-31 23:13:00
我想你们老师应该教过这样求直线是否与圆相交吧
回去好好看数学书.圆心到直线距离<=R.
板凳
merry05 [专家分:8920] 发布于 2008-01-31 23:15:00
这就要涉及碰撞检测问题,建立坐标来判断。
3 楼
笑十三狼 [专家分:1040] 发布于 2008-01-31 23:24:00
谢谢merry05给的重大提示,现在问题就转变成:谁能给我个关与参数方程公式比较详细的网页,时间太久远了,只是依稀记得一点,需要资料回味下
4 楼
merry05 [专家分:8920] 发布于 2008-01-31 23:34:00
其实btxdlibin的方法会更简单,把射线所在的直线方程与圆的方程联立,如果有解说明有射中的可能性。检测是否射中,就是点是否在圆内!(2D)这样便可以省略很多事情。
而form本身就是一个很好的坐标系!。。。
5 楼
笑十三狼 [专家分:1040] 发布于 2008-02-01 14:48:00
btxdlibin的方法?中文是什么意思
6 楼
brokenworld [专家分:2640] 发布于 2008-02-01 21:43:00
btxdlibin的方法行不通,
这个要先求出 枪 这个线段的斜率,然后求出 枪口这个点和圆心这个点连线的斜率,判断这个2个值的差是不是在允许的范围内。
7 楼
merry05 [专家分:8920] 发布于 2008-02-02 09:00:00
[quote]btxdlibin的方法行不通,
这个要先求出 枪 这个线段的斜率,然后求出 枪口这个点和圆心这个点连线的斜率,判断这个2个值的差是不是在允许的范围内。[/quote]
我觉得不用,因为现在要验证的是“射中”,而不是射到圆心,圆是有面积的,只要“枪”所在的直线与圆相交或相切就可以算(可能)“射中”了。
如果圆在子弹飞得过程中会移动的话(人不是笨的),重点是验证子弹是否会在某个时刻内会在圆内(当然,跟踪导弹另当别论)
8 楼
iqapple [专家分:20] 发布于 2008-02-05 22:40:00
求解的话不会太麻烦吗?
只要弹道(无论是不是直的)的终点到圆心的距离小于半径不就完了吗
两点距离公式:d=((x1-x2)^2-(y1-y2)^2)^0.5
9 楼
lijiajiaok [专家分:0] 发布于 2008-02-08 14:22:00
你说的那个游戏我做过,你在发射端射箭的时候你的那个箭离最上方窗口的距离未X1,在目标端的那个圆形距离最上的窗口的距离是X2,那么你要先算下,你的那个箭到园的距离,假如是X3,你在设计的时候计箭肯定要设的速度,那么很容易就算出到达的时间,然后你在时间到后,再判断x1是不是大于X2小于(X2+园的直径)
祝你好运[em2]
10 楼
老大徒伤悲 [专家分:29120] 发布于 2008-02-13 12:53:00
设:
你的目标是某些特定的颜色
你的子弹,是另外一种特定的颜色
射击时,方向由dx、dy来确定,并表示每步子弹前进的长度(速度)。
当下一步子弹的位置上颜色是目标颜色的一种时,击中;
否则,继续。
我来回复