java - 使用 KeyNavigatorBehavior 时使用哪些键来移动?我该如何设置它们?
问题描述
我已经了解了一些有关 Java3D 的知识,并且想知道如何使用击键在相机周围移动。我找到了 KeyNavigatorBehavior 并进行了设置,只是没有 Key 做任何事情。如何正确使用此行为?
在这里,我得到了设置行为的方法:
protected BranchGroup buildViewBranch(Canvas3D c) {
BranchGroup viewBranch = new BranchGroup();
Transform3D viewXfm = new Transform3D();
viewXfm.set(new Vector3f(0.0f, 0.0f, 10.0f));
TransformGroup viewXfmGroup = new TransformGroup(viewXfm);
viewXfmGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
viewXfmGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
BoundingSphere movingBounds = new BoundingSphere(new Point3d(0.0, 0.0,0.0), 100.0);
BoundingLeaf boundLeaf = new BoundingLeaf(movingBounds);
ViewPlatform myViewPlatform = new ViewPlatform();
viewXfmGroup.addChild(boundLeaf);
PhysicalBody myBody = new PhysicalBody();
PhysicalEnvironment myEnvironment = new PhysicalEnvironment();
viewXfmGroup.addChild(myViewPlatform);
viewBranch.addChild(viewXfmGroup);
View myView = new View();
myView.addCanvas3D(c);
myView.attachViewPlatform(myViewPlatform);
myView.setPhysicalBody(myBody);
myView.setPhysicalEnvironment(myEnvironment);
KeyNavigatorBehavior keyNav = new KeyNavigatorBehavior(viewXfmGroup);
keyNav.setSchedulingBounds(movingBounds);
viewBranch.addChild(keyNav);
return viewBranch;
}
以下是设置 VirtualUniverse 的行:
group = new BranchGroup();
VirtualUniverse universe = new VirtualUniverse();
Locale locale = new Locale(universe);
locale.addBranchGraph(this.buildViewBranch(canvas));
locale.addBranchGraph(group);
解决方案
我自己找到了答案:
您必须激活 KeyboardMouse ( Alt+ Shift+ Num) 并停用 numlock:
键是:箭头 + 向上/向下翻页(也在数字锁上)
推荐阅读
- android - Android Studio 中的合并错误
- javascript - 当请求花费太长时间时,检测何时以角度触发 HTTP 错误
- python - 提高 sklearn 中随机森林回归器的性能
- javascript - 刷新特定的 DIV
- arrays - 为什么 IF 数组公式不生成数组?
- spring-boot - Spring 5 WebFlux 服务器通过 RSocket 协议推送通知
- haskell - 根据条件对列表进行分区的功能 - Haskell
- ajax - 阻止对服务器上我的系统 Web 应用程序文件的访问
- c++ - 为什么 sleep() 会导致换行?
- php - 使用 cURL 将表单数据发布到服务器