Cela fait depuis peu de temps que je me suis mis à utiliser le GML sur Game maker. Je me trouve confronter à un problème qui bloque toute la suite de mon travail ! Je n'arrive pas a executer une action en une seul frame..
Pour vous donner un exemple, je veut faire en sorte que si la variable (que j'ai crée au préalable, global.Attaque_J1) est égale à 1 alors la vie du joueur 2 (global.Vie_J2) est diminuer de 1. Pour crée cette condition j'ai placé dans l'évènement Create:
if global.Attaque_J1 = 1
{
global.Vie_J2 -= 1
}
Se qui fait que la condition est pris en compte seulement au lancement de l'objet et donc pas lorsque le joueur 1 attaque. J'ai essayer de placer cette condition dans l'évènement Step/Step cette fois. Ici l'action est certes tout le temps demander jusqu'au moment de l'attaque mais lorsque la condition est remplie elle diminue de 1 a l'infinis (a chaque frames) la vie du joueur 2 sans s'arrêter !
J'ai aussi essayer de placer cette condition dans un script qui n'est demander qu'a la fin de chaque tour, mais ici aussi le script n'est même pas prie en charge étant donner que le joueur n'a qu'une frame pour attaquer.
Enfin bref, ma démarche n'est pas bonne et même en essayant d'autre moyen je n'y parviendrais pas. Je m'en remet à vous, aider moi s'il vous plaît :c .
Merci d'avance !
A voir également:
Gamemaker studios 2/GML: Comment effectuer une action en une seul frame ??
J'ai essayer mais j'ai toujours le même problème.. Comme si l'ordre de remettre l'attaque à 0 ne s'effectuais pas ou alors s'effectuais mais la condition reste active et se tout le temps.
Il faudrais un evenemts qui soir une condition en lui meme du genre, si la condition est vraie alors effectuer l'action sinon, ne rien faire.
Utilisateur anonyme
Est ce que tu peux mettre un point d’arrêt et exécuter en pas à pas.
Non, pour stopper un condition en Pas/Pas il faut soit supprimer manuellement la ligne de code ou alors supprimer complètement l'objet possédant le code. Enfin sa c'est se que je pense..
C'est d'ailleurs se que je voudrais faire, crée un objet Action_1_J1 qui resterait toujours dans la salle puis lui demander de crée en x0,y0,z0 un objet Action_2_J1 possédant l'instance Pas/Pas avec comme ligne de code:
Se qui supprimeras instantanément ce même objet en en créant un autre (obj_Attaque_J1 en x0,y0,z0) puis de mettre dans l'objet Attaque l'instance Create qui execute instantanément le code:
Normalement sa devrais marcher mais je suis sur et certain qu'il existe une méthode bien plus simple que d'avoir a crée un objet qui lui même en crée un autre après la condition remplis pour s'auto-détruire et laisser le nouveau attaquer puis recrée l'ancien et s'auto-détruire à son tour !
Quel galère -_-"
Utilisateur anonyme
Non, pour stopper un condition en Pas/Pas il faut soit supprimer manuellement la ligne de code
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.
Il faudrais un evenemts qui soir une condition en lui meme du genre, si la condition est vraie alors effectuer l'action sinon, ne rien faire.
C'est d'ailleurs se que je voudrais faire, crée un objet Action_1_J1 qui resterait toujours dans la salle puis lui demander de crée en x0,y0,z0 un objet Action_2_J1 possédant l'instance Pas/Pas avec comme ligne de code:
if global.Ready_J1 = 1 & global.Ready_J2 = 1
{
instance_create(0,0,0,obj_Attaque_J1)
instance_destroy(obj_Action_1_J1)
}
Se qui supprimeras instantanément ce même objet en en créant un autre (obj_Attaque_J1 en x0,y0,z0) puis de mettre dans l'objet Attaque l'instance Create qui execute instantanément le code:
global.VieJ1 = global.VieJ1 - 1
global.Ready_J1 = 0 & global.Ready_J2 = 0
instance_create(0,0,0,obj_Action_1_J1)
instance_destroy(obj_Attaque_J1)
Normalement sa devrais marcher mais je suis sur et certain qu'il existe une méthode bien plus simple que d'avoir a crée un objet qui lui même en crée un autre après la condition remplis pour s'auto-détruire et laisser le nouveau attaquer puis recrée l'ancien et s'auto-détruire à son tour !
Quel galère -_-"
On ne doit pas parler de la même chose....
Voilà un tuto pour apprendre à utiliser le débbogueur de Visual Studio
https://openclassrooms.com/fr/courses/1526901-apprenez-a-developper-en-c/2867766-utilisez-le-debogueur
C'est pas ton IDE, certes, mais ça explique les principes de base, dont le point d'arrêt et l'exécution en pas à pas, espionner les variables etc...