gpt4 book ai didi

java - 为游戏随机生成 Sprite ?

转载 作者:行者123 更新时间:2023-11-29 22:16:23 24 4
gpt4 key购买 nike

我正在使用我创建的这种方法来随机创建不同的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com