AndEngine (GLES2)에서 시작해서 TouchScreen을 사용하면 간단한 외륜 스프라이트를 만들려고 노력 중이며 연결된 몸체 이동입니다. 그러나 코드를 어떻게 수정하든 관계없이 호출이 발생하더라도 문제의 본문에 대한 호출을 시도 할 때 항상 NullPointerException을 반환합니다.AndEngine에서 몸체를 조작하면 항상 NullPointerException이 반환됩니다.
다음은 생성 패들 내 코드입니다 :
// Create the Paddle, body for said paddle, and register with the PhysicsWorld
final FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
paddleSprite = new Paddle(mPaddle, getVertexBufferObjectManager());
Body paddleBody = PhysicsFactory.createBoxBody(mPhysicsWorld, paddleSprite, BodyType.DynamicBody, objectFixtureDef);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(paddleSprite, paddleBody, true, false));
paddleBody.setUserData("Paddle");
// .... other Code for initializing sprites ..... //
mScene.attachChild(paddleSprite);
mScene.registerTouchArea(paddleSprite);
mScene.setTouchAreaBindingOnActionDownEnabled(true);
// Method for TouchScreenInteraction
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
if(this.mPhysicsWorld != null){
paddleBody.setTransform(new Vector2((pSceneTouchEvent.getX() - paddleSprite.getWidth()/2)/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT,
(pSceneTouchEvent.getY() - paddleSprite.getHeight()/2)/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT),
0);
return true;
}
return false;
}
paddleSprite, paddleBody 및 액세스는 문제가되지 않습니다 그래서 physicsWorld 글로벌 개체입니다.
NullPointerException은 화면을 터치하는 순간 발생합니다. 내가 불쾌한 함수 호출을 제거하면 작동합니다. 잠시 만지면 가끔씩 게임이 중단됩니다. 이 문제 외에도 Box2D 엔진은 부드럽게 작동하고 다른 동적 객체 (작은 공)는 패들과 잘 작동합니다.
문제점을 확인할 수없는 경우 코드의 나머지 부분을 게시 할 수 있지만 일주일 동안 문제가 발생하여 실제로 프로젝트에 착수 할 수 있도록 도와 주시면 감사하겠습니다. .
미리 감사드립니다.
모든 코드를 제공 할 수 있습니까? Interface Scene.IOnSceneTouchListener를 구현 중이며 @Override를 사용해야한다고 생각합니다. – Aleksandrs