Sprites pour généré au hasard un jeu?
Question
J'utilise cette méthode j'ai créé pour créer au hasard différents sprites à ajouter à ma scène à l'aide 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);
}
Qu'est-ce que je fais est de générer au hasard des numéros 1 -. 6. Et tester à chaque fois pour voir quel numéro est généré, puis-je ajouter l'image-objet correct en fonction du nombre
Le problème is..Since ceci est pour un projet de jeu en utilisant AndEngine. Je veux générer au hasard des objets bonus qui sont générés au hasard, mais pas générés aussi souvent que les sprites ci-dessus. Cela ne devrait se produire dans comme une fois tous les quelques 100 sprites qui sont ajoutés.
Y at-il une meilleure façon de s'y prendre pour le faire? Comme une classe créée juste à cet effet?
Ou suis-je sur la bonne voie? Toute aide sera grandement apprecciated!
La solution
Vous devriez probablement utiliser une instruction switch
plutôt que if-statements
imbriqué pour vérifier quel élément que vous voulez.
Vous pouvez mettre en œuvre une chance de déposer des éléments aléatoires générés supplémentaires chaque pourcentage de x
si vous voulez aswell, plutôt que de mettre un disque sur elle (par exemple tous les 100), pensez à quelque chose comme ceci:
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
}