随机生成的游戏精灵?

时间:2011-12-02 00:24:16

标签: java android andengine

我使用我创建的这个方法随机创建不同的精灵,使用andEngine添加到我的场景中。

 Random randItem = new Random();



     face = null;
     float x = rand.nextInt((int) mCamera.getWidth() - mBallTextureRegion.getHeight());
        int ItemNumber = randFruit.nextInt(6) + 1;

        if(ItemNumber == 1){
            face = new Sprite(x,0, this.mBallTextureRegion);


        }else if(ItemNumber == 2){


            face = new Sprite(x,0,this.strawberryTextureRegion);

        }else if(ItemNumber == 3){

            face = new Sprite(x,0,this.grapeTextureRegion);

            }else if(ItemNumber == 4){
                face = new Sprite(x,0, this.watermelonRegion);

            }else if(ItemNumber == 5){
                face = new Sprite(x,0, this.cherryRegion);


            }else if(ItemNumber == 6){
                Sprite poison = new Sprite(x,0,this.poisionRegion);







            }

我正在做的是随机生成数字1 - 6.并且每次测试以查看生成的数字,然后根据numbER添加正确的精灵。

所以问题是......因为这是使用AndEngine的游戏项目。我想随机生成随机生成但不像上面精灵那样经常生成的奖励项目。这应该只发生在每100个精灵中添加一次。

还有更好的方法吗?就像为此目的而创建的一个类?

还是我走在正确的轨道上?任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

你应该使用switch语句而不是嵌套if-statements来检查你想要的项目。

如果你想要的话,你可以实现每隔x百分比删除其他随机生成项目的机会,而不是在其上放置一个硬计数器(例如每100个),考虑这样的事情:

int itemNumber = randFruit.nextInt(6) + 1;

switch(itemNumber) {
   case 1:
      //Item 1 code
      break;
   case 2: 
      //Item 2 code
      break;
   //etc. . . 
 }

//Generate random number from 1 - 100
int randomItem = (int)(Math.Random()*100);

if (randomItem >= 90 && <= 100) {
  //Generate your item
}
相关问题