我使用这个方法创建随机创建不同的精灵添加到我使用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。并测试每次生成的数字,然后根据数字添加正确的精灵。
所以问题是,因为这是一个游戏项目使用AndEngine。我希望随机生成奖励道具,但不像上面的精灵那样频繁生成。这应该只发生在每添加100个精灵中。
有更好的方法去做这件事吗?就像为此目的而创建的类一样?
还是我在正确的轨道上?任何帮助将非常感谢!
您可能应该使用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
}