- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用我的物理世界、ContactListener,或者只是我创建的 body 。
我的问题是我可以创建一个主体/ Sprite 。 body 和 Sprite 绘制正确,玩家无法穿过它们,但碰撞不适用于它们。我有一个存在此问题的方法,因此为了测试该问题,当玩家射箭时,我创建了一个如下所示的主体:
Sprite testSprite = new Sprite(player.getX() + 100, player.getY() + 100,
resourcesManager.wall_region, vbom);
Body testBody = PhysicsFactory.createBoxBody(physicsWorld, testSprite,
BodyType.DynamicBody, PhysicsFactory.createFixtureDef(0, 0, 0));
attachChild(testSprite);
physicsWorld.registerPhysicsConnector(new PhysicsConnector(testSprite, testBody));
testBody.setUserData(new UserData("Tile", testSprite, 100, testBody));
System.out.println(testBody);
这些物体/ Sprite 创建得很好,但我无法穿过它们。但这些测试体和箭头之间的接触不能正常工作。
这是我的 ContactListener 中的碰撞,当箭头和图 block 碰撞时应该发生:
if (((boolean) ((UserData) x1.getBody().getUserData())
.getType().equals("Tile"))
&& ((boolean) ((UserData) x2.getBody()
.getUserData()).getType().equals("arrow"))) {
System.out.println("Tile/Arrow");
engine.runOnUpdateThread(new Runnable() {
@Override
public void run() {
x2.getBody().setActive(false);
final Sprite sprite = (Sprite) ((UserData) x2
.getBody().getUserData()).getSprite();
detachChild(sprite);
final PhysicsConnector physicsConnector = physicsWorld
.getPhysicsConnectorManager()
.findPhysicsConnectorByShape(sprite);
physicsWorld
.unregisterPhysicsConnector(physicsConnector);
}
});
}
但奇怪的是,这次碰撞需要一段时间才能记录。例如,我可以向 testBody 射 10 支箭,它们只会弹开,但当我射第 11 支箭时,就会发生上述碰撞。
建议?我已经处理这个问题很长时间了,它变得非常令人沮丧,如果需要,我很乐意提供更多信息。谢谢。
最佳答案
根据我的观点,我发现其中有很多错误。
首先,您要创建具有诸如 (0,0,0) 之类的夹具属性的实体。那么这段代码创建了什么类型的主体我无法理解!
首先纠正此问题并根据要求应用适当的值。
如果您的假设是破坏主体,那么为此编写代码意味着不要使用主动方法。
你必须在线程中编写销毁代码,以便它独立执行。因此,您必须维护销毁主体的标志,以便同一个线程不会调用两次。
编辑:像这样创建物理连接器,
physicsWorld.registerPhysicsConnector(new PhysicsConnector(testSprite, testBody));
关于java - 机构未创建正确的引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18949781/
我有一个包含 JSON 数组的 JSON 文件 测试文件 [ { "Name": "Bob" }, { "Age": "37" }, { "DOB": "12/01/1985"} ] 我想
我是一名优秀的程序员,十分优秀!