1
我想使用更新處理程序來增加精靈的比例。但是,它不允許調用場景動作提升事件,所以精靈的大小繼續增加。如何在動作結束時讓更新處理程序中斷?這是我有:當動作啓動時(AndEngine),我如何獲取場景更新處理程序?
的更新處理:
scene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void reset() {
}
@Override
public void onUpdate(float pSecondsElapsed) {
if(fillerNum>-1){
if(filler[fillerNum].active){
mPhysicsWorld.unregisterPhysicsConnector(mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(filler[fillerNum].sprite));
mPhysicsWorld.destroyBody(filler[fillerNum].body);
filler[fillerNum].sprite.setScale(filler[fillerNum].scale+=pSecondsElapsed*3);
filler[fillerNum].body = PhysicsFactory.createCircleBody(mPhysicsWorld, filler[fillerNum].sprite, BodyType.DynamicBody, FIXTURE_DEF);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(filler[fillerNum].sprite, filler[fillerNum].body, true, true));
}
}
}
});
場面觸摸事件:
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
if(this.mPhysicsWorld != null) {
if(pSceneTouchEvent.isActionDown()) {
createFiller(pSceneTouchEvent.getX(), pSceneTouchEvent.getY());
return true;
}
if(pSceneTouchEvent.isActionUp()){
Log.e("Action UP", Boolean.toString(filler[fillerNum].active));
createStationaryFiller();
}
}
return false;
}
我想過這個,但我的isactionup從來沒有註冊(日誌語句從不執行),這是我想要調用scene.unregisterUpdateHandler(處理程序),對吧? – rphello101
TouchEvent在您擡起手指時甚至會觸發嗎?把一些日誌輸出放在if語句之前,然後看看。也許嘗試檢查pSceneTouchEvent.getAction()== MotionEvent.ACTION_UP。我認爲這不會有幫助,但值得一試。 – JohnEye
另外,記錄pSceneTouchEvent.getAction()的值並告訴我你得到了什麼。 – JohnEye