首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jMonkeyEngine: BetterCharacterControl总是跳跃

jMonkeyEngine: BetterCharacterControl总是跳跃
EN

Stack Overflow用户
提问于 2014-03-19 21:09:36
回答 3查看 742关注 0票数 2

我创建了两个Spartials,其中一个设置为RigidBodyControl,第二个设置为BetterCharacterControl。这两个框的大小分别为(10f,1f,10f)和(0.5f,0.5f,0.5f)。

代码语言:javascript
运行
复制
 floor = createFloor();
 CollisionShape sceneShape = CollisionShapeFactory.createMeshShape(floor);
 landscape = new RigidBodyControl(sceneShape, 0);
 floor.addControl(landscape);
 rootNode.attachChild(floor);

 character = createCharacter();
 player = new BetterCharacterControl(1F,1F,0.01f); 
 character.addControl(player);
 rootNode.attachChild(character);

 bulletAppState.getPhysicsSpace().add(landscape);
 bulletAppState.getPhysicsSpace().add(character); 
 landscape.setPhysicsLocation(new Vector3f(0,-4,5));
 player.warp(new Vector3f(0,0,0));

现在如果我运行它..。角色只是在地板上弹来弹去,我不知道为什么。但是,如果我使用标准的CharacterControl,它就可以工作。我知道字符框与形状不匹配,但我想这应该不是问题。

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2014-05-03 13:23:15

你有没有试着打开调试?

代码语言:javascript
运行
复制
bulletAppState = new BulletAppState();
bulletAppState.setThreadingType(BulletAppState.ThreadingType.PARALLEL);
stateManager.attach(bulletAppState);
bulletAppState.setDebugEnabled(true);

使用调试可以帮助您查看碰撞形状。

票数 1
EN

Stack Overflow用户

发布于 2014-05-07 13:16:52

感谢您分享调试技巧。问题是:

代码语言:javascript
运行
复制
player = new BetterCharacterControl(1F,1F,0.01f); 

您不应该创建半径小于尺寸的圆柱体。

代码语言:javascript
运行
复制
player = new BetterCharacterControl(1F,1F,1F); 

工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2014-05-24 20:11:20

在我的例子中,我需要通过将BetterCharacterControl(1.5f,1f,1f)增加到BetterCharacterControl(1.5f,6f,1f)来增加角色的高度。我不确定为什么这为我解决了这个问题,但它确实解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22506892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档