gpt4 book ai didi

java - Andengine,如何用触摸屏移动 Sprite

转载 作者:太空狗 更新时间:2023-10-29 12:49:50 26 4
gpt4 key购买 nike

我从 Andengine 开始,当我触摸屏幕(不是 Sprite )时很难移动我的 Sprite 。我真的需要你的帮助,非常感谢。

这是我的代码:

    @Override
protected Scene onCreateScene() {
final Scene scene = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, this.mBackgroundTextureRegion, getVertexBufferObjectManager());
scene.attachChild(backgroundSprite);
Carl carl = new Carl(1, 30, 361, this.carl, getVertexBufferObjectManager()){

};

scene.attachChild(carl);



this.mStack1.add(carl);
carl.setmStack(mStack1);
scene.registerTouchArea(carl);
scene.setTouchAreaBindingOnActionDownEnabled(true);


return scene;
}
public boolean onTouchEvent(MotionEvent event, Carl carl) {

carl.setPosition(carl.getX() +2,carl.getY() );
return true;
}

最佳答案

你可以实现 IOnSceneTouchListener 接口(interface),而不是覆盖 onSceneTouchEvent 方法,你可以在其中用你的球行动

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
carl.setPosition(carl.getX() +2,carl.getY() );
return false;
}

但不要忘记将此 scene.setOnSceneTouchListener(this); 添加到 protected Scene onCreateScene()

编辑:

boolean canGo = false;

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN)
canGo = true;
if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_UP)
canGo = false;
return false;
}

这会添加到您的 public Sc​​ene onCreateScene() {

scene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void reset() {}
@Override
public void onUpdate(float pSecondsElapsed) {
// TODO Auto-generated method stub
if (canGo)
ball.setPosition(ball.getX() + 2, ball.getY());
}
});

关于java - Andengine,如何用触摸屏移动 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433916/

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