鼠标关节无法将球限制在屏幕的一半部分

发布于 2024-11-04 09:00:44 字数 261 浏览 0 评论 0原文

大家好,我正在使用 box 2d 框架在 cocoas2d 中开发应用程序,但不幸的是

我无法限制此处显示的图像的半屏区域中的灰色球 我希望该球不要移动到屏幕的另一部分

我使用了 b2Mousejoint 用于在屏幕上移动球

b2PrismaticJointDef 限制在任何特定轴上 但是
我想限制屏幕的特定矩形区域 我的麻烦的图片

Hi guys I Am developing the application in cocoas2d using the box 2d frame work but unfortunately

i'm not able to restrict the gray ball in the half screen area of the image shown here
i want that ball not to go opposite part of the screen

I Have Used The b2Mousejoint For to move the ball around the screen

b2PrismaticJointDef restrict on any particular axis
But
i want to restrict on the particular rect area of the screen
image  of my trouble

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔小萌 2024-11-11 09:00:44

您可以创建自定义距离关节,这将限制球的全局轴。但如果你从不编写自己的物理引擎,那就很难了。

有两种更简单的方法可以实现您想要的功能。

  1. 在球必须停留的区域周围创建 4 个静态“边界”框。然后将球和盒子放入一个碰撞组中。

在此处输入图像描述

但是,“边框”框的响应不会是即时的。因此,高速行驶的球有时会“沉入”盒子中,然后又弹出来。

  1. 当球越过所需区域的边界时,您可以在代码中手动纠正位置并重置球的速度。但这可能会导致物理模拟不稳定。

You could create your custom distance joint which will restrict global axes of the ball. But it will be hard if you never write your own physics engine.

There are 2 easier ways to implement what you want.

  1. Create 4 static "border" boxes around the area where the ball must stay. Then place the ball and the boxes into one collision group.

enter image description here

However, the response of the "border" boxes will not be instant. Therefore, the ball at high speed will sometimes "sink" into the boxes, then be popped out.

  1. You can correct the position and reset the speed of the ball manually in code when it crosses the bounds of the desired area. But it may lead to the unstable physics simulation.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文