Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何允许精灵仅从一侧移动到另一侧?_Java_Android_Andengine - Fatal编程技术网

Java 如何允许精灵仅从一侧移动到另一侧?

Java 如何允许精灵仅从一侧移动到另一侧?,java,android,andengine,Java,Android,Andengine,我正在使用Angenine为学校创建一个项目 我有一个精灵,我允许用户触摸和移动 精灵位于我的项目中平铺贴图的顶部 我想做的是创建一种方式,使用户不能上下移动精灵。只有并排 这里是我目前使用的,允许用户将精灵移动到他们选择的任何地方 player = new Sprite(PlayerX, PlayerY, mHippoTextureRegion){ @Override public boolean onAreaTouched(final TouchEvent

我正在使用Angenine为学校创建一个项目

我有一个精灵,我允许用户触摸和移动

精灵位于我的项目中平铺贴图的顶部

我想做的是创建一种方式,使用户不能上下移动精灵。只有并排

这里是我目前使用的,允许用户将精灵移动到他们选择的任何地方

player = new Sprite(PlayerX, PlayerY, mHippoTextureRegion){
         @Override
         public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
                 this.setPosition(pSceneTouchEvent.getX() - this.getWidth() / 2, pSceneTouchEvent.getY() - this.getHeight() / 2);
                 return true;
         }
 };

任何想法或帮助都将不胜感激。

请不要使用触摸事件中的Y值:

player = new Sprite(PlayerX, PlayerY, mHippoTextureRegion){
    @Override
    public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
                                 final float pTouchAreaLocalX,
                                 final float pTouchAreaLocalY) {
        this.setX(pSceneTouchEvent.getX() - this.getWidth() / 2);
        return true;
     }
};
或者如果
Sprite
没有
setX
方法,但是有
getY
方法:

player = new Sprite(PlayerX, PlayerY, mHippoTextureRegion){
    @Override
    public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
                                 final float pTouchAreaLocalX,
                                 final float pTouchAreaLocalY) {
        this.setPosition(pSceneTouchEvent.getX() - this.getWidth() / 2,
                         this.getY());
        return true;
     }
};