IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut 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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 902
    Points : 220 062
    Points
    220 062
    Billets dans le blog
    126
    Par défaut
    Bonjour,

    Dans le code que vous montrez, vous essayez de donner à un index, la valeur d'un sprite, cela ne convient pas.
    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 ?)

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2010, 23h30
  2. Réponses: 0
    Dernier message: 06/03/2009, 19h26
  3. Executer du code pendant une durée déterminé
    Par vladimire dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/12/2008, 11h32
  4. Réponses: 1
    Dernier message: 17/02/2006, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo