gpt4 book ai didi

android - 如何让场景更新处理程序在 Action 启动时中断 (AndEngine)?

转载 作者:行者123 更新时间:2023-11-30 04:08:34 25 4
gpt4 key购买 nike

我正在尝试使用更新处理程序来增加 sprite 的比例。但是,它不允许调用场景 Action 向上事件,因此 Sprite 的大小会继续增加。当 Action 结束时,如何让更新处理程序中断?这是我的:

更新处理程序:

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;
}

最佳答案

只需保存 UpdateHandler 的实例:

handler = new IUpdateHandler() {... etc

当你想停止它时,调用scene.unregisterUpdateHandler(handler)

关于android - 如何让场景更新处理程序在 Action 启动时中断 (AndEngine)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11220179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com