В настоящее время я работаю над учебниками по jMonkey для начинающих, в частности Hello Collision и столкнулись с устаревшим классом в руководстве, CharacterControl. Я нашел то, что кажется наиболее естественным преемником BetterCharacterControl. . Мне удалось изменить код учебника, чтобы он скомпилировался и запустился, но «персонаж», то есть вид от первого лица, кажется, не двигается, когда я использую указанные привязки клавиш. Я почти уверен, что проблема в том, что я неправильно настраиваю плеер. вот старые строки кода из туториала..
CollisionShape sceneShape =
CollisionShapeFactory.createMeshShape((Node) sceneModel);
landscape = new RigidBodyControl(sceneShape, 0);
sceneModel.addControl(landscape);
CapsuleCollisionShape capsuleShape = new CapsuleCollisionShape(1.5f, 6f, 1);
player = new CharacterControl(capsuleShape, 0.05f);
player.setJumpSpeed(20);
player.setFallSpeed(30);
player.setGravity(30);
player.setPhysicsLocation(new Vector3f(0, 10, 0));
а вот на что поменял..
com.jme3.bullet.collision.shapes.CollisionShape sceneShape =
CollisionShapeFactory.createMeshShape((Node) sceneModel);
landscape = new RigidBodyControl(sceneShape, 0);
player = new BetterCharacterControl(1.5f,6f,1);
player.setJumpForce(new Vector3f(5f,20f,0f));
player.setGravity(new Vector3f(0f,10f,0f));
player.warp(new Vector3f(0,30,0));
1) по какой-то причине мне пришлось добавить полное имя класса для CollisionShape
, хотя я импортировал его ранее в файл, если кто-нибудь знает, почему это было бы здорово, но не является большой проблемой прямо сейчас
2) я пытался найти максимально похожие методы, которые только мог, но как видите, несмотря на сходство названий, некоторые из них принимают разные аргументы. Я просмотрел документацию, но она довольно скудна, поскольку объясняет, что каждый метод и т. д. на самом деле делает/используется для
3) единственное другое место, где я изменил код, - это цикл обновления. я изменил это..
cam.setLocation(player.getPhysicsLocation());
к этому...
cam.setLocation(player.getViewDirection());
что, похоже, не вызвало никаких проблем, камера по-прежнему движется как обычно (по крайней мере, когда стоит на месте и панорамирует. Как я уже сказал, я вообще не мог двигаться)
если у кого-то есть опыт работы с jMonkey, я уверен, что это не слишком сложно... заранее спасибо