Je veux placer mes objets et ennemis au hasard (ou aussi au hasard que possible). Pour le moment, j'utilise la Random
classe XNA pour générer un nombre compris entre 800 pour X et 600 pour Y. On dirait que les ennemis apparaissent plus vers le haut de la carte qu'au milieu ou en bas. Je n'amorce pas le générateur, c'est peut-être quelque chose à considérer.
Y a-t-il d'autres techniques décrites qui peuvent améliorer le placement aléatoire de l'ennemi sur une grille 2D?
Réponses:
Le placement aléatoire ne semble pas assez aléatoire à l'œil nu. Vous voudrez probablement que les ennemis soient espacés un peu plus uniformément. Jetez un œil à cet article sur l'échantillonnage de disques de Poisson ou lisez le bruit bleu.
la source
Shawn Hargreaves à la rescousse!
http://blogs.msdn.com/b/shawnhar/archive/2009/12/17/the-psychology-of-randomness.aspx http://blogs.msdn.com/b/shawnhar/archive/2010/09 /10/links-5-charles-bloom-on-randomness.aspx
Quand vous pensez distribution aléatoire, vous voulez vraiment dire distribution uniforme. Aléatoire de .Net pense au hasard. Vous avez besoin d'autre chose pour égaliser. La méthode d'échantillonnage de disque de Poisson amitp liée à semble parfaite pour vos besoins.
la source
Le code C # suivant générera pour vous un ensemble de points uniformes:
Notez que lorsque vous utilisez le constructeur Random () sans paramètres, l'objet Random que vous créez est prédéfini en fonction de l'heure, donc il va être essentiellement aléatoire à moins que vous ne le répétiez avec très peu de temps entre les appels.
la source