android - Andengine,让 Sprite 随机 move

标签 android random sprite andengine move

我想在点击它时使 Sprite move ,但我有一个问题...... Sprite 总是 move 到左上角,我试图输入随机值,但它没有给出结果

ballITexture = TextureRegionFactory.extractFromTexture(BaseActivity.getSharedInstance().ballTexture);
final Random rand = new Random();
sprite = new Sprite(0, 0, ballITexture, BaseActivity.getSharedInstance().getVertexBufferObjectManager()){
            @Override
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
               randomMove(rand.nextInt(4), pTouchAreaLocalX, pTouchAreaLocalY, this);

            };

mCamera = BaseActivity.getSharedInstance().mCamera;
sprite.setPosition(mCamera.getWidth() / 2 - sprite.getWidth() / 2, mCamera.getHeight() / 2 - sprite.getHeight() / 2);
moveable = true;

这是 randomMove 方法:

private void randomMove(int direction, float pTouchAreaLocalX, float pTouchAreaLocalY, Sprite sprite){

    switch(direction){
            case 0:
                sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, 1, pTouchAreaLocalY, 1));
                break;
            case 1:
                sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, 1, pTouchAreaLocalY, -1));
                break;
            case 2:
                sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, -1, pTouchAreaLocalY, 1));
                break;
            case 3:
                sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, -1, pTouchAreaLocalY, -1));
                break;
        }

}

我的问题是,为什么我的 Sprite 在我触摸它时总是 move 到左上角,而不是随机 move ?如何解决?

最佳答案

算了,我给 MoveModifier 传递了不正确的参数,我把 1 和 -1 值应该是相机的任何像素

private void randomMove(int direction, float pTouchAreaLocalX, float pTouchAreaLocalY, Sprite sprite){

        sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, rand.nextInt(mCamera.getWidth()), pTouchAreaLocalY, rand.nextInt(mCamera.getHeight())));

关于android - Andengine,让 Sprite 随机 move ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110312/

相关文章:

Android - 跟踪 IntentService 中的多个操作

android - 将 LinearLayout 对齐到底部,在填满屏幕的 ViewPager 下

java - 返回随机 boolean 值并用于引导 "if"语句

c++ - 生成E=0的浮点随机数

java - libgdx 如何检测冲突?

ios - SpriteKit 场景中的对象定位

android - 是否有用于删除警报的 Android API

android - 使用 Algolia Android 客户端进行单元测试时出现死锁

sql-server - 从预定义列表中选择随机数据

c# - 缓慢移动 Sprite 时获得 "giggly"效果