2

我正在尝试在 jQuery 中开发一种乒乓球游戏,我想知道如何限制容器内的滑块位置。

我还需要有关如何生成球/盒子以及如何使其在容器的侧面和顶壁上弹跳的帮助。

我已经设法解决了这个问题,但我仍然在努力将滑块保持在容器内,并在弹跳的球上挣扎。

任何帮助将不胜感激。 MyCodeSoFar

4

2 回答 2

1

你问了很多一般性的问题,所以我会给你一些一般性的建议。:)

我正在尝试在 jQuery 中开发一种乒乓球游戏,我想知道如何限制容器内的滑块位置?

要约束桨,只需检查一些偏移量。

要确定它是否接触到左边框,请检查它与左侧的偏移量。如果是0,请忽略←</kbd> keydown.

要确定它是否接触到右边框,请获取左侧偏移量并添加桨的宽度。如果等于游戏区域的宽度,则忽略→</kbd> keydown.

我还需要有关如何生成球/盒子以及如何使其在容器的侧面和顶壁上弹跳的帮助。

由于您使用的是元素而不是canvas,您可以使用 CSS 生成一个球...

#ball {
    width: 20px;
    height: 20px;
    border-radius: 20px;
}

这里的关键是与球的和border-radius相等。widthheight

为了让球反弹,有一个随着你的游戏计时器增加xy速度。当球与球拍或比赛区域的边缘发生碰撞时,翻转这些标志。为了让它更像乒乓球,你可以在它击中桨的某些区域时修改反弹的方式,例如,如果它击中远边缘,它在反转时有一个更锐利的角度。

要确定球是否击中了比赛区域的边缘,请使用类似于我上面描述的技术。

要确定您的球是否撞击了您的球拍,请使用一些碰撞检测代码。检查球的 Y 偏移是否高于桨的 Y 偏移(我假设您的桨在水平轨道上线性移动)。然后,如果满足该条件,请查看球的 X 偏移量是否在桨的 X 偏移范围和 ( +) 桨的宽度范围内。

如果您的桨和游戏区域永远不会改变,那么缓存这些宽度将是有益的。

于 2012-02-16T22:46:06.530 回答
1

对不起,你的代码对我来说有点乱。不管怎样,我发现这个类似 js pong 的游戏的想法很有趣,我修改了你的代码来做你想做的事情。

看看这个小提琴,随时给我一些反馈。

于 2012-02-23T08:31:08.430 回答