Замена устаревших методов jMonkey

В настоящее время я работаю над учебниками по 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, я уверен, что это не слишком сложно... заранее спасибо


person celeriko    schedule 21.04.2014    source источник


Ответы (1)


Извините за несколько поздний ответ (всего на 2 месяца...),

Вы добавляете BetterCharacterControl в PhysicsSpace? Не похоже, что это так, и я считаю, что если это не в физическом пространстве, внесенные вами изменения не будут применены, поэтому движение на самом деле не сдвинет его.

Попробуй, может быть? Предполагая, что вы еще не исправили это/сдались?

person CreeperInATardis    schedule 27.06.2014