Je suis développeur Web et je souhaite commencer à écrire mes propres jeux.
Pour plus de familiarité, j'ai choisi JavaScript et canvas
element pour l'instant.
Je veux générer un terrain comme celui-ci dans Scorched Earth.
Ma première tentative m'a fait réaliser que je ne pouvais pas simplement randomiser la y
valeur; il devait y avoir un peu de raison dans les sommets et les creux.
J'ai cherché un peu sur Google, mais je ne trouve pas quelque chose d'assez simple pour moi ou j'utilise les mauvais mots clés.
Pouvez-vous me montrer le type d'algorithme que j'utiliserais pour générer quelque chose dans l'exemple, en gardant à l'esprit que je suis complètement nouveau dans la programmation de jeux (depuis la création de Breakout en 2003 avec Visual Basic)?
Que diriez-vous d'utiliser l' algorithme de déplacement à mi-chemin éventuellement suivi d'un léger lissage, par exemple un filtrage passe-bas pour éliminer les pointes trop pointues? Cette approche n'est pas la même que dans Scorched Earth, mais devrait fournir des résultats similaires.
Je crois que la Terre brûlée a simulé en quelque sorte la gravité et la saleté qui tombe. Par exemple, vous ne pouvez pas avoir une pente trop raide car sinon la saleté tomberait et créerait une pente moins raide.
la source
Il existe une autre approche que vous pouvez utiliser. Vous pouvez additionner un certain nombre d'ondes sinusoïdales générées aléatoirement, puis mettre le résultat à l'échelle pour l'adapter à votre écran. C'est vraiment facile en pratique et produit de bons résultats, bien que plus doux et peut-être plus artificiel que votre exemple de capture d'écran.
Vous pouvez voir la source en javascript ici. Il est vraiment facile de jouer avec certains paramètres pour obtenir différents types de terrain.
https://github.com/fmstephe/Tankwars
la source