我正在创建一个突破游戏来熟悉Java。目前我已经把一切都做好了,但我注意到球似乎是朝着同一个方向飞的。
我已经对它进行了编程,当球碰到球拍时,Y速度是相反的。这是可行的,但球似乎遵循相同的路线。。。
如何让碰撞看起来更真实?
当球击中桨的左侧时,我想将其重新定向到左侧,但我不确定在哪个角度反射它。有人能提供一个公式来帮助我计算出当球接触桨的左侧或右侧时需要引导的角度吗?
一个想法可能是使用球拍的运动来稍微改变方向。比如说,如果击球时球拍向右移动,除了扭转Y方向外,还可以稍微改变球的X速度。这为用户提供了一种实际使用某种技能将正确的“英语”放在球上的方法。
对于完全弹性碰撞,反转垂直速度是正确的做法,这是你在突破游戏中想要的(球在碰撞后保持其总速度)。
遵循相同路线的问题可以通过随机化初始球位置和速度来避免,或者通过将碰撞动力学改变为不现实的来避免。您可以在两个坐标上添加一个小的随机分量(注意保持总速度相同),或者根据球击中垫的位置以不同的角度发送球(这是许多此类游戏所做的)。
要执行后面的操作,您需要计算球击中垫子的绝对位置,将其标准化(通过减去垫子位置并除以垫子长度),并将其映射到一个角度范围(可能是-80到80度)。然后,您可以使用三角函数计算所需的水平和垂直速度。
如果球从顶部撞击桨叶,则否定速度。
如果球从侧面撞击桨叶,则否定速度。
我目前正在尝试使用java和libgdx制作一个突破性的克隆。我现在很难让球以合适的角度从挡块上弹起。简而言之,我遇到的问题是,球每帧移动12个像素,并不总是与砖的边缘对齐。如果有人对更好的移动球的方法或其他检查碰撞的方法有任何建议,我们将不胜感激! 主要游戏类 Ball类 砖块代码以防万一
我正在为一项大学作业创建一个项目,我遇到了一点障碍。这个问题很小,很可能被认为是没有被注意到的,但它仍然困扰着我,作为一个程序性的人,在完成工作方面,我不能继续做任何事情,直到它被解决。 我有桨和球代码工作良好,以及一个简单的角速度的基础上,球击中桨,但我的问题是当球击中砖块。代码大多有效,似乎完美无瑕,但当球做以下两件事之一时,情况会发生变化: 击中砖块的一个角可能会错误地扭转球的速度轴 同时击
我正在做一个突破克隆,在球与桨的碰撞中遇到了一些小麻烦。我用一个矩形表示球和桨,当它们相交时,表示球速度的Y向量为负数(如下所示)。这一切都很好。问题是当球拍向右移动时,我希望它将球稍微向右移动(与正常反射相反),我希望在相反方向发生相同的情况,即球拍向左移动。我不知道该怎么做,我已经找遍了。任何帮助都将不胜感激。谢谢 编辑:基本上我想根据球拍移动的方向稍微改变球从球拍上反弹的角度。如果桨叶不移动
我正在创建一个突破游戏,我之前在这里问了一个问题,但没有提出解决方案。我有一个简单的物理过程来反转球与桨碰撞时的速度。但我需要实现一个更先进的物理系统,例如,当球击中桨的左侧和右侧时,等等。。。但我该如何计算碰撞后球的方向呢?突破的标准是在与球拍左侧碰撞时将球指向左侧,如果碰撞是向右的,则指向右侧,等等。。。 我如何计算在哪里击球?我有很多变量可以使用,比如桨叶的各个方面(宽度、高度、X位置)、球
我想创造一个和乒乓球一样的游戏。我创建了一个沿着圆周移动的桨。注意桨是弧形的。我想知道我如何检测球和桨之间的碰撞。为了更好地理解这个:http://gyazo.com/7bac8acdf0faf66005015d496498ca33球将在圆圈内,当与桨碰撞时反射出去。提前感谢!
基本上我在做一个游戏的过程中,这是像乒乓球,突破等,我有一些问题时,球和桨碰撞。。。但只是有时候! 下面的视频是正在发生的事情:http://www.youtube.com/watch?v=uFZIxFIg0rI 所以是的,基本上,当球与球拍相撞时,它有时会变得有点疯狂......通常情况下,如果我将球拍移动到球接近它的相反方向。此外,球有时会被夹在游戏窗口的底部和球拍之间......即使我有代码