gpt4 book ai didi

java - 安卓游戏,0x​​104567910 - box2D

转载 作者:行者123 更新时间:2023-11-30 09:36:26 25 4
gpt4 key购买 nike

我正在尝试在我的 Android 游戏中实现“杠杆”,这张图片展示了我想要什么,展示了它是如何工作的:

1)

enter image description here

2)

enter image description here

我设法通过使用关节来完成它的基础:

final RevoluteJointDef revoluteJointDef = new RevoluteJointDef();
revoluteJointDef.initialize(anchorBody, movingBody, anchorBody.getWorldCenter());
revoluteJointDef.enableLimit = true;
revoluteJointDef.upperAngle = MathUtils.degToRad(40);
revoluteJointDef.lowerAngle = MathUtils.degToRad(-40);
physicsWorld.createJoint(revoluteJointDef);

它起作用了,我可以在左/右方向移动操纵杆,并且你不能超过适当的角度,所以这部分就完成了。但是现在我正在寻找一种方法,在移动这个杠杆后执行操作(例如打开一些门/门)

这是我的基本想法,如何通过用这种方式创建棍子的主体来检查玩家(左或右)触摸了棍子的哪一部分:

enter image description here

所以解释一下,通过添加 2 个传感器,一个在左侧,一个在右侧,这样在接触式监听器中我会检查哪一侧被触摸了。

但我仍然不知道如何检查是否应该执行操作,我知道如果摇杆角度为 40 或 -40,我可以检查每次更新,但这是有效的方法吗?或者也许有更好的?我将非常感谢任何提示!谢谢

最佳答案

你不必担心这里的效率,检查角度的性能损失绝对可以忽略不计。我使用以下代码 fragment 测量了获取 Sprite 和 Body 的角度所需的时间:

double testEnd;
double testStart;
testStart = System.nanoTime();
for (int i = 0; i<1000000; i++) {doStuff()}
testEnd = System.nanoTime();
Log.v("speed test", "it takes "+ (testEnd - testStart)/1000000 + " nanoseconds");

因此,在 Desire Z 上,查找 Sprite 的角度仅需 157 ns,而查找 Body 仅需 393 ns。它也比使用接触监听器简单得多。请注意,如果您旋转 Sprite,则 Sprite 的角度可以在 (-360, +360) 度之外。

关于java - 安卓游戏,0x​​104567910 - box2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10774415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com