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!

Était-ce utile?

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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top