Java 如何让这个骰子代码在AndEngine中显示新的滚动模具?

Java 如何让这个骰子代码在AndEngine中显示新的滚动模具?,java,android,random,andengine,dice,Java,Android,Random,Andengine,Dice,所以我试图在我的游戏中创造一个场景,比如马里奥派对,掷骰子,打字。但是有一个随机移动的问号骰子,触摸后,应该随机选择一个数字1-6,并显示相应的纹理。但它似乎既没有记录触摸,也没有显示新模具 但到目前为止,只有随机问号骰子运动似乎有效,不会显示任何骰子命中率,实现这一点的最佳方法是什么?如中所示,最佳编码实践。因为这看起来有点不对劲 public class Dice extends Sprite implements IEntity { private final PhysicsHandler

所以我试图在我的游戏中创造一个场景,比如马里奥派对,掷骰子,打字。但是有一个随机移动的问号骰子,触摸后,应该随机选择一个数字1-6,并显示相应的纹理。但它似乎既没有记录触摸,也没有显示新模具

但到目前为止,只有随机问号骰子运动似乎有效,不会显示任何骰子命中率,实现这一点的最佳方法是什么?如中所示,最佳编码实践。因为这看起来有点不对劲

public class Dice extends Sprite implements IEntity {
private final PhysicsHandler mPhysicsHandler;
Random randomGenerator = new Random();
private float RandomX;
private float RandomY;
private int CAMERA_WIDTH = 960;
private int CAMERA_HEIGHT = 540;

public static Sprite newDiceSprite;

public int mDiceHit;

public Dice(final float pX, final float pY,
        final ITextureRegion pTextureRegion,
        final VertexBufferObjectManager pVertexBufferObjectManager) {
    super(pX, pY, pTextureRegion, pVertexBufferObjectManager);
    this.mPhysicsHandler = new PhysicsHandler(this);
    this.registerUpdateHandler(this.mPhysicsHandler);
    RandomX = randomGenerator.nextInt(3);
    RandomY = randomGenerator.nextInt(3);
    RandomX = RandomX * 100;
    RandomY = RandomY * 100;
    this.mPhysicsHandler.setVelocity(RandomX, RandomY);
}

@Override
protected void onManagedUpdate(final float pSecondsElapsed) {
    if (this.mX < 0) {
        this.mPhysicsHandler.setVelocityX(RandomX);
    } else if (this.mX + this.getWidth() > CAMERA_WIDTH) {
        this.mPhysicsHandler.setVelocityX(-RandomX);
    }

    if (this.mY < 0) {
        this.mPhysicsHandler.setVelocityY(RandomY);
    } else if (this.mY + this.getHeight() > CAMERA_HEIGHT) {
        this.mPhysicsHandler.setVelocityY(-RandomY);
    }

    super.onManagedUpdate(pSecondsElapsed);
}

@Override
public boolean onAreaTouched(final TouchEvent pAreaTouchEvent,
        final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
    switch (pAreaTouchEvent.getAction()) {
    case TouchEvent.ACTION_DOWN:
        // do action when button pressed down.

        rollDice();

        break;
    case TouchEvent.ACTION_UP:
        // do action when button pressed up.
        break;
    }
    return super.onAreaTouched(pAreaTouchEvent, pTouchAreaLocalX,
            pTouchAreaLocalY);
}

public void rollDice() {

    Random rand = new Random();

    mDiceHit = (rand.nextInt(5) + 1);

    if (mDiceHit == 1) {

    } 

    else if (mDiceHit == 2) {

    }

    else if (mDiceHit == 3) {

    }

    else if (mDiceHit == 4) {

    } 

    else if (mDiceHit == 5) {

    }

    else if (mDiceHit == 6) {

        //newDiceSprite = new Sprite(0,0, ResourceManager.dieSideSixTextureRegion, ResourceManager.getInstance().engine.getVertexBufferObjectManager());
        //newDiceSprite.setPosition(400, 200);
        //ManagedGameScene.attachChild(newDiceSprite);
        GameLevel.newDice6();

    }

}

我想,一个简单的开关就可以了

public boolean Roll() {

    ResourceManager.diceShake.play();

    Random rand = new Random();

    switch (rand.nextInt(6) + 1) {
    case 1:
        // dice_picture.setImageResource(R.drawable.one);
        dice1Sprite = new Dice(20, 20,
                ResourceManager.dieSideOneTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice1Sprite);

        break;
    case 2:
        // dice_picture.setImageResource(R.drawable.two);
        dice2Sprite = new Dice(40, 40,
                ResourceManager.dieSideTwoTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice2Sprite);

        break;
    case 3:
        // dice_picture.setImageResource(R.drawable.three);

        dice3Sprite = new Dice(60, 60,
                ResourceManager.dieSideThreeTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice3Sprite);

        break;
    case 4:
        // dice_picture.setImageResource(R.drawable.four);

        dice4Sprite = new Dice(80, 80,
                ResourceManager.dieSideFourTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice4Sprite);

        break;
    case 5:
        // dice_picture.setImageResource(R.drawable.five);

        dice5Sprite = new Dice(100, 100,
                ResourceManager.dieSideFiveTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice5Sprite);

        break;
    case 6:
        // dice_picture.setImageResource(R.drawable.six);

        dice6Sprite = new Dice(120, 120,
                ResourceManager.dieSideSixTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        SceneManager.getInstance().mCurrentScene.attachChild(dice6Sprite);

        break;
    default:
    }

    rolling = false; // user can press again

    this.sortChildren();
    return true;

}
public boolean Roll() {

    ResourceManager.diceShake.play();

    Random rand = new Random();

    switch (rand.nextInt(6) + 1) {
    case 1:
        // dice_picture.setImageResource(R.drawable.one);
        dice1Sprite = new Dice(20, 20,
                ResourceManager.dieSideOneTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice1Sprite);

        break;
    case 2:
        // dice_picture.setImageResource(R.drawable.two);
        dice2Sprite = new Dice(40, 40,
                ResourceManager.dieSideTwoTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice2Sprite);

        break;
    case 3:
        // dice_picture.setImageResource(R.drawable.three);

        dice3Sprite = new Dice(60, 60,
                ResourceManager.dieSideThreeTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice3Sprite);

        break;
    case 4:
        // dice_picture.setImageResource(R.drawable.four);

        dice4Sprite = new Dice(80, 80,
                ResourceManager.dieSideFourTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice4Sprite);

        break;
    case 5:
        // dice_picture.setImageResource(R.drawable.five);

        dice5Sprite = new Dice(100, 100,
                ResourceManager.dieSideFiveTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        this.attachChild(dice5Sprite);

        break;
    case 6:
        // dice_picture.setImageResource(R.drawable.six);

        dice6Sprite = new Dice(120, 120,
                ResourceManager.dieSideSixTextureRegion,
                ResourceManager.getInstance().engine
                        .getVertexBufferObjectManager());

        SceneManager.getInstance().mCurrentScene.attachChild(dice6Sprite);

        break;
    default:
    }

    rolling = false; // user can press again

    this.sortChildren();
    return true;

}