Project1

标题: 请教一个碰撞问题= =不是XP也不是VX [打印本页]

作者: fux2    时间: 2011-8-11 11:02
标题: 请教一个碰撞问题= =不是XP也不是VX
在下最近在制作一个类似打砖块的游戏,完成了一点雏形。
但是写到砖块与球的碰撞判定时不知道怎么判断球是从哪个面撞上来的= =
故求各位前辈不吝赐教……
如何判断球是撞到了砖块的侧面还是上下面呢?
作者: 小传子    时间: 2011-8-11 11:09
张永好像做了这么个游戏,不知道他那个有没有判断撞击面的
作者: IamI    时间: 2011-8-11 11:10
好吧我鬼畜一下……砖块有两条对角线,夹成4个区域,判定球心在哪个区域即可……
线性规划最快,当然单纯判定下也不难。

作者: fux4    时间: 2011-8-11 11:29
IamI 发表于 2011-8-11 11:10
好吧我鬼畜一下……砖块有两条对角线,夹成4个区域,判定球心在哪个区域即可……
线性规划最快,当然单纯判 ...

十分感谢……II君这么一说我才发现我已经把数学和编程隔开了
作者: 心雪    时间: 2011-8-14 01:49
IamI 发表于 2011-8-11 11:10 好吧我鬼畜一下……砖块有两条对角线,夹成4个区域,判定球心在哪个区域即可…… 线性规划最快,当然单纯判 ...

又是狐狸的鼠标区块判断那一套么……
其实直接比较xy和高度厚度不就行了么,x在砖块宽度范围y不在砖块高度范围说明是从下面撞的……
作者: 无心孤云    时间: 2011-8-14 01:52
为什么这种高难度的帖会出现在水区?
作者: fux2    时间: 2011-8-14 08:15
心雪 发表于 2011-8-14 01:49
又是狐狸的鼠标区块判断那一套么……
其实直接比较xy和高度厚度不就行了么,x在砖块宽度范围y不在砖块高 ...

那照你这样最多只能区分上下面,不信你试试再说?
作者: 退屈£无聊    时间: 2011-8-14 10:14
高难度- -
虽然很想说把四边形的点代入判断,但这样效率实在太低了.
作者: IamI    时间: 2011-8-14 11:29
小瞳的方法可以的…四条边线的延长线分了九个区域,然后判定就行了
作者: 禾西    时间: 2011-8-14 12:11
求 球心和磚心的差值,然後算斜率 OvO
作者: fux2    时间: 2011-8-14 13:47
IamI 发表于 2011-8-14 11:29
小瞳的方法可以的…四条边线的延长线分了九个区域,然后判定就行了

如果是5楼的话,我认为他不是这个意思= =
作者: 退屈£无聊    时间: 2011-8-15 17:32
禾西的方法不错.
用球心和矩形对称中心的XY之差求那个角度,然后用矩形的宽或长的一半加上球的半径算出撞击距离值,判断球的位置是否在这个距离内.如果在这个距离内的话,用角度的范围返回撞击的面(这个小鸡你自己去实践吧
作者: 小黄鸡    时间: 2011-8-15 17:44
退屈£无聊 发表于 2011-8-15 17:32
禾西的方法不错.
用球心和矩形对称中心的XY之差求那个角度,然后用矩形的宽或长的一半加上球的半径算出撞击 ...

早就用自己的方法了= =
把XY速度分情况设置了一下,效率高很多。
比如当XY方向速度都为正的时候,只可能返回上或者左
然后再规划区域.
作者: enghao_lim    时间: 2011-8-16 00:15
砖块不是四条边么?与边界触碰判定就好了嘛……==
作者: 小黄鸡    时间: 2011-8-16 13:30
enghao_lim 发表于 2011-8-16 00:15
砖块不是四条边么?与边界触碰判定就好了嘛……==

球怎么可能是一像素一像素的移动呢囧= =
作者: 匿名    时间: 2011-8-16 13:59
相对极坐标,然后360度随便获取(大雾)
作者: enghao_lim    时间: 2011-8-16 19:21
小黄鸡 发表于 2011-8-16 13:30
球怎么可能是一像素一像素的移动呢囧= =

你的球没有边界么?有边界不就办法判断了么。==




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1