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 :

Petit problème de variable


Sujet :

Game Maker

  1. #1
    Candidat au Club
    Homme Profil pro
    Recherche d'emploi dans l'évenementiel
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Recherche d'emploi dans l'évenementiel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Petit problème de variable
    Bonjour avant tout merci de lire ce message c'est sympa.
    Je développe (du-moins j'essaye) un jeu 2d type galaga sur un logiciel du nom de game maker.
    voilà mon problème:
    Par défaut l'objet qui sert de projectile se détruit sur l’ennemie et donc j'ai eu pour idée de crée un bonus pour faire en sorte que le projectile se détruise pas j'usque la tous va bien (en apparence). j'ai donc crée un variable qui en défini quand mon player apparait (à chaque début de partie), cette variable est défini comme fausse par le player.
    Le projectile lui test si cette variable et si elle est fausse il est sensé se détruire (en théorie). Ensuite le bonus lui défini cette variable comme vrai et au bout d'un certain laps de temps il redéfini la variable comme fausse.

    Mon problème est que dès que le projectile touche un ennemie j'ai un message d’erreur qui me dit que la variable à testé n'est pas défini (j'ai bien vérifié les écritures)

    voilà si vous avez un peu de temps à m’accorder ce serait super sympa

    encore merci

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Ainsi (je veux dire, sans le projet), cela sera dur de déterminer la cause. C'est bien d'avoir vérifier les écritures. Par contre, est-ce que la variable est définie au bon endroit ? (c'est à dire, de manière à ce quelle soit utilisable dans le projectile). Cela semble que la variable devrait être globale.
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Recherche d'emploi dans l'évenementiel
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Recherche d'emploi dans l'évenementiel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut suite
    merci de ta réponse,

    Comme tu la dit et j'ai omis de le précisé j'ai bien fait en sorte que le variable soit défini avant d’être tester, j'ai aussi essayer de faire une variable globale mais même résultat. La seule hypothèse que j'ai c'est que la variable est défini au début de chaque partie mais le projectile n'est pas encore créé il ne doit donc pas la prendre en compte.

  4. #4
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Cela semble que la variable devrait être globale.
    On en a pendu pour moins que ça.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  5. #5
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flof_le francais Voir le message
    un bonus pour faire en sorte que le projectile se détruise pas j'usque la tous va bien (en apparence).
    Donc il ne se détruit pas ?
    Citation Envoyé par Flof_le francais Voir le message
    Le projectile lui test si cette variable et si elle est fausse il est sensé se détruire (en théorie)
    Et ça, ça marche ?
    Citation Envoyé par Flof_le francais Voir le message
    Ensuite le bonus lui défini cette variable comme vrai et au bout d'un certain laps de temps il redéfini la variable comme fausse.
    Le projectile existe toujours ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Recherche d'emploi dans l'évenementiel
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Recherche d'emploi dans l'évenementiel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut suite
    Dès que le projectile (sans avoir activer le bonus) touche un ennemi j'ai immédiatement le message d'erreur donc non ça ne marche pas.Nom : crash jeu.png
Affichages : 329
Taille : 785,0 Ko

    le code que j'ai écrie est [if sniper=false{instance_destroy()}

    et pour définir la variable j'ai utiliser le logiciel (le bouton set variable) et j'ai aussi essayer de le déclarer par du script sous cette forme [sniper=false]

    enfin dans mon bonus j'ai mis un event qui doit set la variable [sniper=true] quand le bonus s'active et j'ai mis une alarme qui remet la variable en "normal" [sniper=false]

    de toute facon je n'ai pas réussi à activer le bonus car le message d'erreur est avant.

    j’espère être concis j'ai du mal à expliquer les choses.


  7. #7
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    Tester morceau par morceau aiderait à la compréhension du problème.
    -Tester le fait que le projectile reste bien en vie après l'impact.
    -L'alarme, lancée à l'impact pour s'assurer du bon fonctionnement
    -La variable sniper déclarée à true dès la création du projectile
    -...

  8. #8
    Candidat au Club
    Homme Profil pro
    Recherche d'emploi dans l'évenementiel
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Recherche d'emploi dans l'évenementiel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut peut être la fin
    Comme on me la dit précédemment j'ai testé "morceaux par morceaux" et j'ai eu une idée qui à permis de résoudre mon problème.

    j'ai crée des projectiles différent de ceux deux base (mais avec le même sprite) et dans l’exécution du tir par le joueur j'ai doubler les lignes et fait en sortes d'intégré les nouveaux objets.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    if canfire=true{
     
    if Doublefire=true{
     
    if bullettype=1{bullet=instance_create(x-20,y-20,Small_bullet)}
    if bullettype=2{bullet=instance_create(x-20,y-20,Basic_bullet)}
    if bullettype=3{bullet=instance_create(x-60,y,Big_bullet)}
     
    bullet.speed=20
     
    if randomfire=false {bullet.direction=90}
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
    }
    if bullettype=1{bullet=instance_create(x+20,y-20,Small_bullet)}
    if bullettype=2{bullet=instance_create(x+20,y-20,Basic_bullet)}
    if bullettype=3{bullet=instance_create(x+60,y,Big_bullet)}
     
    bullet.speed=20
     
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
     
    if randomfire=false {bullet.direction=90}
     
    canfire=false
     
    if Firerate=1{
    alarm_set(0,10)
    }
    if Firerate=2{
    alarm_set(0,15)
    }
    if Firerate=3{
    alarm_set(0,50)
    }}
    ci-dessus c'est l'original et ci-dessous le nouveaux pas optimisé mais fonctionnelle

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    if sniper=false{
    if canfire=true{
     
    if Doublefire=true{
     
    if bullettype=1{bullet=instance_create(x-20,y-20,Small_bullet)}
    if bullettype=2{bullet=instance_create(x-20,y-20,Basic_bullet)}
    if bullettype=3{bullet=instance_create(x-60,y,Big_bullet)}
     
    bullet.speed=20
     
    if randomfire=false {bullet.direction=90}
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
    }
    if bullettype=1{bullet=instance_create(x+20,y-20,Small_bullet)}
    if bullettype=2{bullet=instance_create(x+20,y-20,Basic_bullet)}
    if bullettype=3{bullet=instance_create(x+60,y,Big_bullet)}
     
    bullet.speed=20
     
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
     
    if randomfire=false {bullet.direction=90}
     
    canfire=false
     
    if Firerate=1{
    alarm_set(0,10)
    }
    if Firerate=2{
    alarm_set(0,15)
    }
    if Firerate=3{
    alarm_set(0,50)
    }}}
     
    /// zone sniper acivé
     
    if sniper=true{
    if canfire=true{
     
    if Doublefire=true{
     
    if bullettype=1{bullet=instance_create(x-20,y-20,Small_bullets)}
    if bullettype=2{bullet=instance_create(x-20,y-20,Basic_bullets)}
    if bullettype=3{bullet=instance_create(x-60,y,Big_bullets)}
     
    bullet.speed=20
     
    if randomfire=false {bullet.direction=90}
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
    }
    if bullettype=1{bullet=instance_create(x+20,y-20,Small_bullets)}
    if bullettype=2{bullet=instance_create(x+20,y-20,Basic_bullets)}
    if bullettype=3{bullet=instance_create(x+60,y,Big_bullets)}
     
    bullet.speed=20
     
    if randomfire=true{
    fireaxe=irandom_range(180,0)
    bullet.direction=fireaxe}
     
    if randomfire=false {bullet.direction=90}
     
    canfire=false
     
    if Firerate=1{
    alarm_set(0,10)
    }
    if Firerate=2{
    alarm_set(0,15)
    }
    if Firerate=3{
    alarm_set(0,50)
    }}}
    voilà je sais pas je doit mettre résolu mais en tous cas ça marche pour moi.

Discussions similaires

  1. Morpion, petit problème de variables
    Par talapoga dans le forum Débuter
    Réponses: 5
    Dernier message: 29/04/2015, 09h01
  2. Petit problème de variable
    Par Askental dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 18/08/2009, 17h39
  3. petit problème de variable
    Par shaku dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/04/2009, 21h27
  4. Réponses: 3
    Dernier message: 19/09/2006, 20h12
  5. petit problème variable perl bizzare
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 08/04/2006, 01h01

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