Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Game Maker Discussion :

Changement de sprite pendant une durée


Sujet :

Game Maker

  1. #1
    Nouveau Candidat au Club
    Changement de sprite pendant une durée
    Bonjour tout le monde,


    Je viens de découvrir Game Maker et j'ai rencontré un problème au niveau du codage depuis quelques jours. J'ai essayé de m'informer sur plusieurs forums, tutoriels etc ... mais je n'ai pas d'informations me permettant d'avancer.

    Le résultat voulu:

    J'ai créé un petit shooter dans lequel, lorsqu'un laser touche un ennemi cet ennemi perd une vie et est détruit au bout de trois tirs. J'aimerais que pendant un intervalle de temps l'ennemi en question change de sprite pour montrer le dégât reçu puis revient au sprite d'origine.


    dans l'event Step

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    hit =instance_place(x,y,ob_ennemi)
     
    if(hit!=noone)
    {
    hit.life -=1;
    instance_destroy()
     
    compteur=30
    }
     
    if (compteur>0){
    compteur--
    hit.sprite_index=sp_ennemidegat
    }
     
    if (compteur<=0) hit.sprite_index=sp_ennemi




    Le problème :
    Dès que je commence à tirer un laser, le jeu bug avant même qu'un laser rencontre un ennemi. Le compteur de step fonctionne normalement car je l'ai déjà testé (je l'ai remplacé par une alarme et ça à fait la même chose), le hit.sprite_index fonctionne aussi.
    Seul hit.sprite_index=sp_ennemi fait buger lorsque hit.sprite_index=sp_ennemidegat est présent aussi. bizarre

    J'ai testé en utilisant un objet qui prend les changements de sprite, dès que je tire, lors du step suivant l'objet prend le sprite de dégat sans qu'il y ai collision (et le compteur ne fait pas changer de sprite).


    Bref je suis dans une impasse ^^, si vous avez des solutions, d'autres alternatives ou des idées; je vous en remercie d'avance!



    PS : Le système de collision et de vie fonctionnent

  2. #2
    Responsable 2D/3D/Jeux

    Bonjour,

    Dans le code que vous montrez, vous essayez de donner à un index, la valeur d'un sprite, cela ne convient pas.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    if(hit!=noone)

    Faute de frappe ?

    J'ai testé en utilisant un objet qui prend les changements de sprite, dès que je tire, lors du step suivant l'objet prend le sprite de dégat sans qu'il y ai collision (et le compteur ne fait pas changer de sprite).
    Dans un tel objet, vous êtes sur que les changements de sprite ne sont pas automatique (système des animations ?)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.