我正在尝试在 jQuery 中开发一种乒乓球游戏,我想知道如何限制容器内的滑块位置。
我还需要有关如何生成球/盒子以及如何使其在容器的侧面和顶壁上弹跳的帮助。
我已经设法解决了这个问题,但我仍然在努力将滑块保持在容器内,并在弹跳的球上挣扎。
任何帮助将不胜感激。 MyCodeSoFar
我正在尝试在 jQuery 中开发一种乒乓球游戏,我想知道如何限制容器内的滑块位置。
我还需要有关如何生成球/盒子以及如何使其在容器的侧面和顶壁上弹跳的帮助。
我已经设法解决了这个问题,但我仍然在努力将滑块保持在容器内,并在弹跳的球上挣扎。
任何帮助将不胜感激。 MyCodeSoFar
你问了很多一般性的问题,所以我会给你一些一般性的建议。:)
我正在尝试在 jQuery 中开发一种乒乓球游戏,我想知道如何限制容器内的滑块位置?
要约束桨,只需检查一些偏移量。
要确定它是否接触到左边框,请检查它与左侧的偏移量。如果是0
,请忽略←</kbd> keydown.
要确定它是否接触到右边框,请获取左侧偏移量并添加桨的宽度。如果等于游戏区域的宽度,则忽略→</kbd> keydown.
我还需要有关如何生成球/盒子以及如何使其在容器的侧面和顶壁上弹跳的帮助。
由于您使用的是元素而不是canvas
,您可以使用 CSS 生成一个球...
#ball {
width: 20px;
height: 20px;
border-radius: 20px;
}
这里的关键是与球的和border-radius
相等。width
height
为了让球反弹,有一个随着你的游戏计时器增加x
的y
速度。当球与球拍或比赛区域的边缘发生碰撞时,翻转这些标志。为了让它更像乒乓球,你可以在它击中桨的某些区域时修改反弹的方式,例如,如果它击中远边缘,它在反转时有一个更锐利的角度。
要确定球是否击中了比赛区域的边缘,请使用类似于我上面描述的技术。
要确定您的球是否撞击了您的球拍,请使用一些碰撞检测代码。检查球的 Y 偏移是否高于桨的 Y 偏移(我假设您的桨在水平轨道上线性移动)。然后,如果满足该条件,请查看球的 X 偏移量是否在桨的 X 偏移范围和 ( +
) 桨的宽度范围内。
如果您的桨和游戏区域永远不会改变,那么缓存这些宽度将是有益的。
对不起,你的代码对我来说有点乱。不管怎样,我发现这个类似 js pong 的游戏的想法很有趣,我修改了你的代码来做你想做的事情。
看看这个小提琴,随时给我一些反馈。