我正在使用我创建的这种方法来随机创建不同的 Sprite ,以使用 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。每次测试生成的是哪个数字,然后根据数字添加正确的 Sprite 。
所以问题是..因为这是一个使用AndEngine的游戏项目。我想随机生成随机生成但不像上面的 Sprite 那样频繁生成的奖励项目。这应该只会在每添加 100 个 Sprite 时发生一次。
有没有更好的方法来做到这一点?就像为此目的创建的类?
或者我走在正确的轨道上?任何帮助将不胜感激!
最佳答案
您可能应该使用 switch
语句而不是嵌套的 if 语句
来检查您想要的项目。
如果你愿意,你也可以实现每 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
}
关于java - 为游戏随机生成 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350296/