Besoin d'un coup de pouce sur Construct 2 ? C'est par ici !
Avatar de l’utilisateur
par Sheyroth
#27123 Bonjour bonsoir tout le monde !

Je suis actuellement en train de faire un snake-like, et je bloque un peu sur l'apparition des "bonus" sur l'écran, les petites pastilles que le snake mange pour grossir et augmenter sa vitesse.

Le but est de faire apparaître ces bonus de manière aléatoire sur l'écran et pas sur la tête du snake (celle qu'on contrôle) ou sur les segments du snake (les sprites qui forment le corps du snake).

Du coup, pour les moments, j'ai:

Every X seconds : -> System Create object bonus on layer 1 at X=round(random(6,14))*32, Y= round(random(4,11))*32.

Avec ça, je fais apparaître les bonus à des positions aléatoires multiples de 32 (j'essaie de prendre 32 comme mesure principale du jeu). Ça marche bien, mais certains bonus apparaissent du coup sur le snake. J'ai des solutions pour "cacher" ce problème, mais l'idée serait de trouver une expression qui comprenne à la fois l'apparition des bonus à des positions random mais pas là où est le snake.

Si quelqu'un(e) a des idées, je suis preneur !
Dernière édition par Sheyroth le Mar 30 Oct 2018 12:11, édité 1 fois.
Avatar de l’utilisateur
par Deakcor
#27127 Salut,
Alors une solution de facilité ça serait que si lors de la création le bonus touche le snake alors il se détruit et tu reappelles la fonction qui crée un bonus. !siffl))
Avatar de l’utilisateur
par Sheyroth
#27129 Effectivement, c'est une des premières choses à laquelle j'ai pensé, et ça marcherait à n'en pas douter. Le soucis, c'est que ça peut "anormalement" créer du délai dans l'apparition des bonus.

Imaginons que par manque de chance le bonus apparaît plusieurs fois de suite sur le serpent, à l'écran le bonus va mettre du temps à apparaître. C'est pour ça que je cherchais une solution pour dire au jeu de ne pas faire pop de bonus à des positions qui potentiellement changent tout le temps.
Avatar de l’utilisateur
par Hieronims
#27130 Tu fais en sorte que lorsque tu créés ton bonus tu testes une collision avec le serpent, si oui tu le déplaces. et tu re-testes la collisions. Tu fais ça dans une boucle afin qu'il passe à la suite du code uniquement quand le soucis est résolus. Ainsi tu n'auras pas de soucis d'affichage.
Avatar de l’utilisateur
par Dupat
#27131 Salut une autre solution serai de quadriller ton niveau, désactiver les case touché par le snake , et faire spawn les bonus sur les cases actives^^
Avatar de l’utilisateur
par Sheyroth
#27132
Hieronims a écrit:Tu fais en sorte que lorsque tu créés ton bonus tu testes une collision avec le serpent, si oui tu le déplaces. et tu re-testes la collisions. Tu fais ça dans une boucle afin qu'il passe à la suite du code uniquement quand le soucis est résolus. Ainsi tu n'auras pas de soucis d'affichage.


Ça marche bien plutôt bien, merci !

Et merci à tout le monde pour le coup de main ! ^^