2011-11-05 45 views
0

我正在使用angengine为学校创建一个项目。如何让精灵只能左右移动?

我有一个雪碧,我允许用户触摸和移动。

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

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

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

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

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

回答

1

只要不使用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; 
    } 
};