Rendre la visibilité de la plateforme distincte de l'arrière-plan

15

J'ai un jeu de type coureur infini 2d dont le fond change constamment ses couleurs. Pendant ce temps, la couleur des plates-formes reste la même. De cette façon, les plates-formes à un moment donné (lorsque leur couleur est la même que celle de l'arrière-plan) deviennent "invisibles" pour le joueur.

Comment puis-je éviter de façon créative, rapide et pratique ce problème d'unité?

PS J'ai essayé d'y ajouter un matériau brillant, mais cela n'a pas fonctionné .

ZenVentzi
la source

Réponses:

20

Vieux truc - nouveau look:

Exemple 1

Ajoutez une couche de couleur à vos plateformes qui aide à conserver cette ligne définie.

Exemple 2

Votre solution de ligne ou d'autres graphiques peut varier, mais le principe est le même - la couleur que vous choisissez peut être aussi subtile ou aussi nette que vous en avez besoin.

Tom 'Blue' Piddock
la source
La réponse la plus belle de toute ma vie. Je dirais la vie ici, mais nous savons tous que ce serait un mensonge. i1.memy.pl/obrazki/8f68408024_no_life.jpg
ZenVentzi
1

Comme il s'agit d'un coureur infini, je suppose que vos couleurs d'arrière-plan sont générées de manière procédurale. Je ne suis pas sûr de votre algorithme, mais prenez cette sortie de couleur et limitez sa plage.

  1. Vous pouvez simplement exclure la ou les couleurs de votre plateforme en tant qu'option de couleur d'arrière-plan possible (mais l'arrière-plan peut être un tout petit peu différent et difficile à différencier). Par exemple: IF backColor = platformColor THEN GetNextBackgroundColor (). Vous pouvez également créer une fonction 'IsColorSimilar (color1, color2)', mais plus difficile.

  2. Utilisez une liste de couleurs d'arrière-plan valides connues et parcourez-les.

  3. Avoir des «styles» de couleurs différents pour les deux. Votre plate-forme pourrait être lumineuse et gaie, et limiter vos couleurs d'arrière-plan à des couleurs désaturées. Vous devez vous éloigner de la façon traditionnelle RBG de représenter les couleurs et passer à un modèle tel que HSL.

ColorTools est un excellent complément Unity pour travailler avec les couleurs. Cela coûte 10 $, mais ça vaut le coup. https://www.assetstore.unity3d.com/en/#!/content/21966

Il a des méthodes pour générer des couleurs pour ce que vous recherchez, telles que Desaturate () pour désaturer la couleur d'arrière-plan générée et IsSimilar () pour vérifier si les deux couleurs sont trop proches l'une de l'autre.

Vous pouvez trouver d'autres fonctionnalités similaires gratuitement dans d'autres bibliothèques sur le net avec un peu de recherche.

Doug.McFarlane
la source