J’ai pourtant essayé la collision avec et sans les masques de collisions et je veux faire:
-Quand Azertyndows est en collision avec batterie, supprimer l’objet batterie,
Et l’objet reste la, sans rien faire.
Merci de m’aider
Je pense que tes EV ne sont pas bien programmer et ce n’est pas la faute de GD (je ne vois pas pourquoi GD s’acharnerai sur toi (quoi que je le comprend ))
Ce que tu pourrais faire déjà, c’est de juste vérifier la collision, et d’augmenter la variable Energie de 25 (+25) et de supprimer ton objet Batterie (t’aurais juste besoin d’un évènement comme ça, car là j’en devine d’autres plus bas pour le même comportement).
Là normalement tu dois déjà avoir l’Energie à 25 avant de pouvoir le récupérer, or si tu fais diminuer ce que tu récupère avant par 1 de temps en temps, il est probable que tu n’ai que 20 ou 19.
Ce serait plus logique si il faisait (en partant du principe que l’énergie de Azertyndows plafonne à 100) :
Si Azertyndows est en collision avec Batterie
Si Energie != 100
– faire +50 à Energie
– supprimer Batterie
----- Si Energie > 100
----- faire =100 à Energie
Je me demande vraiment, ce que t’as bien pu faire
Tu veux bien envoyer le jeu en version portable ? (je pourrais avoir accès à tout et profiter du debugger)
au lancement de la scène faire = 25 a la variable énergie
Si ta variable est déjà initialiser à 25 ça ne sert à rien
Faire +25 à la variable batterie
essaye avec =25 car si le perso se trouve sur un objet qui met à 50 cela fera une boucle et la variable sera augmenter de 25 toute les miliemes de seconde mais bon on dirai que tu a protégé cela avec une condition sur cette variable
Comme tu veut mais si tu complexifie le téléporteur (comme ça m’est arriver) j’ai dut tout refaire car quand il y à 2 paires de téléporteur
le perso peut se téléporter du premier au dernier sans passer par celui que tu veut alors:
Halte à la triche
Ton perso touche une batterie, et ça remplit son énergie.
Ton problème est que tu dois gérer les différents niveaux d’énergie (25, 50 ,75).
C’est pas la peine.
Faut juste ajouter 50 à l’énergie, et remettre l’énergie à 100 si elle dépasse le maximum.
L’important est donc que le personnage ne soit pas à 100 d’énergie.
Mets ça en évènement 4 :
Si Azertyndows est en collision avec Batterie
Si Energie != 100
– faire +50 à Energie
– supprimer Batterie
et en évènement supplémentaire :
Si Energie > 100
---- faire =100 à Energie
Pour ton code, en évènement 25, l’énergie ne peut pas être égale à 25 et 50 en même temps !
Il y a déjà un problème.
Tu dois appliquer le même principe que la batterie.
L’important, c’est que énergie ne descende pas en dessous de 0.
Donc :
Si collision avec Ennemis
---- faire -variableInitiale(dommages) à energie
Enemis est un groupe où sont listés tous les ennemis du jeu
variableinitiale(dommages) est une variable initiale présente dans chaque objet ennemi, qui indique la quantité de dommage en cas de collision.
Pour ton Dead_mark, sa variable Dommages devrait être de 200 (pour être sûr que l’énergie de azertyndows soit à zéro).
Ensuite, tu crées un évènement :
Si énergie <= 0
------- on enclenche la séquence de game over (on supprime le bonhomme, on affiche un texte, on change la musique, etc. )
J’ai regardé un peu ton archive. Je crois que tu es allé trop vite en besogne …
Les 3/4 de tes objets devraient être en global. Ainsi, tu n’aurais pas besoin de les récréer dans l’éditeur d’objet de chaque scène (ou répercuter les changements dans chaque scène).
Tu devrais cloisonner ton code avec les évènements externes, pour les mêmes raisons.
Un évènement externe qui gère le déplacement du héros, un évènement externe qui gère les ennemis, un évènement externe pour l’interface, etc.
Ainsi, lorsque tu modifies un évènement externe, cette modification se répercute dans toutes les scènes où il est lié.
Par exemple, si tu trouves que le perso est trop lent, tu modifie l’evènement externe de déplacement, et ce sera appliqué dans toutes les scènes le référençant.
Si tu as 50 niveaux, et que tu te rends compte d’un bug dans la gestion des collisions (lié à l’évènement ou au masque de collision), qu’est-ce que tu vas faire ?
Avec ton code actuel, tu vas devoir repasser dans tous les niveaux pour modifier le même évènement.
Avec un code en évènement externe+objets globaux, tu modifies un évènement/objet et c’est bon. Bien plus efficace.
Par ailleurs :
les masques de collision de tes sprites sont trop larges. Ils devaient être 2 fois plus petits (à la louche) que le sprite. C’est plus simple pour négocier les plateformes
Pas besoin de se saouler avec les directions manuelles, une rotation automatique aurait fait le même boulot (seules les touches fléchées gauche-haut-droite auraient été utilisées)
Méfies-toi des plateformes hautes. Si le joueur tombe entre deux colonnes, il est coincé et doit faire reset (niveau inside le windows).
Quand tu files une archives à tester, indique quelle scène. Les faire une par une pour comprendre comment ça marche, et laquelle doit être corrigée, c’est un peu long.