| Bomberman | |
|
+4hyper chopsuey onilink_ Herdge 8 participants |
|
Auteur | Message |
---|
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 13:01 | |
| Bon ben je raconte de la ***** alors Sinon ouais, la méthode de Chopsuey marche, mais si tu veux que ca joue quand meme quand il y a un décalage, (genre une deuxième bombe explose alors que le son de la première est pas fini), suffit de mettre un variable play a false quand tu joue le son, puis de la remettre a true dans le step, et tu joue le son uniquement si play vaut true. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 14:44 | |
| Merci. J'ai trouvé ma solution en observant sur un émulateur un vrai bomberman. Il suffisait de décaler un peu plus dans le temps les réactions en chaine de bombes et d'annuler le sample en train d'être joué par le nouveau (même s'il n'est pas fini). Le résultat est identique à l'original du coup ! |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 15:33 | |
| J'aimerai appeler un sprite à l'aide d'une variable string correspondant au personnage plus l'animation concernée Exemple pour appeler le sprite spr_bomberman_move_left
perso = "spr_bomberman_"
if <condition> then sprite_index = perso + "move_left"
Cela ne fonctionnne malheureusement pas, est-ce que quelqu'un sait pourquoi ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 15:38 | |
| GM utilise un système de constantes pour les ressources, tu peux pas les appeler depuis un string. Mais bon c'est pas compliqué... if <condition> sprite_index=spr_bomberman_move_left; _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 16:33 | |
| Oui c'est ce que je fais actuellement mais après je vais avoir besoin d'autres persos avec les même sprites genre spr_perso2_move_left, spr_perso3_move_left... donc j'aurais aimé créer une fonction avec le nom du perso en argument0 qui renvoie le bon sprite. Une idée pour optimiser cela ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 17:00 | |
| Bah soit tu fais un switch, mais c'est a peine mieux que les if, soit tu charge tes sprites pendant le jeu avec les fonctions dédiées, et la tu pourra utiliser un string. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 17:16 | |
| Tu pourrais me donner un exemple de chargement de sprites ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 17:33 | |
| sprite_add() http://gamemaker.info/fr/manual/409_01_spritesPour le nom du fichier, utilise la variable working_directory, ca te permet de récupérer le chemin jusqu'à ton projet. Par exemple si tes sprites sont dans un dossier "spr" dans le meme dossier que ton exécutable, le nom du fichier c'est: working_directory+"spr/tonimage.jpg". _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 17:39 | |
| |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 17:42 | |
| Ca permet aussi de gagner de la place en mémoire, vu que dès que t'en as plus besoin tu peux le supprimer tranquille et pas le charger avant d'en avoir besoin _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 18:04 | |
| Ouaip! Par contre on peut pas utiliser de .png, c'est assez ****** d'ailleurs, mais tu peux gérer la transparence (via l'argument), il va rendre transparent tous les pixels de la meme couleur du pixel supérieur gauche, donc t'as juste a mettre un fond uni d'une couleur que t'utilise pas (en général le magenta ou le vert). _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 18:21 | |
| Tu veux dire, quand il charge ? Il convertit le truc en .bmp, c'est ça ? _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 18:39 | |
| ****** d'internet de *****, je viens de perdre mon message >< Je disais donc que si tu veux profiter de sprites transparents meme avec les formats jpg et bmp qui ne supportent pas la transparence, si tu spécifie l'argument transparent a true et que tu met un fond uni a ton sprite, il va etre transparent. Il récupère la couleur du premier pixel, celui tout en haut a gauche, et il va remplacer tous les pixels de la meme couleur par un pixel transparent. Je précise ca parce qu'en général un sprite est jamais complètement opaque,,et que c'est pas forcément évident de comprendre la façon de faire au début ! Ca doit etre écrit dans la doc mais je sais plus exactement ou donc bon ^^' _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 19:11 | |
| Pourtant dans le GM editor, c'est celui en bas à gauche...j'utilise assez peu sprite_add mais plutôt background_add, mais comme je crois que jusqu'à présent les 2 pixels étaient de la même couleur, ça s'est pas vu mais bon :p _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 11 Mai 2014 - 20:09 | |
| Ah euh oui possible, maintenant que tu le dis c'est ptet celui du bas a gauche, meme si c'est plutot étonnant^^ Enfin peu importe, suffit de tester ! ^^ _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Lun 12 Mai 2014 - 23:39 | |
| - Térence68 a écrit:
- sprite_add()
http://gamemaker.info/fr/manual/409_01_sprites Pour le nom du fichier, utilise la variable working_directory, ca te permet de récupérer le chemin jusqu'à ton projet. Par exemple si tes sprites sont dans un dossier "spr" dans le meme dossier que ton exécutable, le nom du fichier c'est: working_directory+"spr/tonimage.jpg".
Du coup c'est valable aussi pour l'installeur après compilation ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Mar 13 Mai 2014 - 7:09 | |
| Comment ca ? Pas compris ta question là... _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Mar 13 Mai 2014 - 12:16 | |
| Le jeu va chercher les ressources peut importe où est l'exécutable ? (tant que le dossier est à côté) |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Mar 13 Mai 2014 - 14:21 | |
| Bon j'ai essayé dans mon projet mais ça ne fonctionne pas. J'ai mis dans le dossier monprojet.gmx le sprite spr_bomberman_move_up.png et spr_bomberman_move_up.bmp pour tester les 2 formats. Dans le creation code de ma room j'ai mis : global.playerup = sprite_add(working_directory + "\spr_bomberman_move_up.png", 4, true, false, 0, 0)
mais quand je regarde dans le debugger les variables globales, global.playerup = -1 comme s'il n'avait pas trouvé le fichier. Quelqu'un a une idée ? |
|
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: Bomberman Mar 13 Mai 2014 - 15:27 | |
| Le "working directory" se trouve dans C:\Users\nom\AppData\Local\nom du projet Depuis gm studio tous les fichiers externes doivent se trouver à cette emplacement. _________________ - Spoiler:
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Mar 13 Mai 2014 - 20:49 | |
| Ca a marché ! Merci beaucoup. |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Mer 14 Mai 2014 - 11:06 | |
| Au fait peut-on supprimer rapidement tous les sprites chargés avec sprite_add plutôt que de les supprimer un à un avec sprite_delete ? (genre sprite_delete(all)) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Bomberman Mer 14 Mai 2014 - 11:19 | |
| Je ne crois pas, le mieux est de les ajouter a une liste a chaque sprite_add et supprimer tous les sprites dont les ind sont dans la liste. |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Mer 14 Mai 2014 - 13:31 | |
| Et comment fonctionnent les listes sous GM du coup ? |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Bomberman Mer 14 Mai 2014 - 14:03 | |
| Tu crées une liste avec ds_list_create() qui te renvoie l'ind de la liste crée, et ensuite tu fais comme dit la doc de GM Ça fonction vraiment comme un tableau, mais c'est plus 'propre' dans pas mal de cas vu que tu l'identifies via un ind (donc tu peux le passer facilement en argument a un script par ex, ou le copier, l'envoyer a une instance, etc). |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: Bomberman Jeu 15 Mai 2014 - 1:20 | |
| Il me semble que c'est a peut pres comparable au dynamisme du vector de la librairie standard en C++ (std::vector pour les connaisseurs). |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 18 Mai 2014 - 13:17 | |
| Je rencontre un nouveau problème que je n'arrive pas à résoudre. Je souhaiterais que l'objet oBomb deviennent "hard[i] = true" pour l'objet oPlayer numéro i lorsque celui n'est plus en collision avec oBomb. J'ai donc modifié place_free_ext de la sorte : - Citation :
- var ii, i;
i = player_id; ii = instance_place(argument0, argument1, oBomb) if(ii) { return ii.hard[i] == false && place_free(argument0, argument1) } return place_free(argument0, argument1) Mais le problème c'est que j'ai toujours l'erreur suivante : - Citation :
- FATAL ERROR in
action number 1 of Step Event0 for object oPlayer:
trying to index variable that is not an array at gml_Script_place_free_ext (line 11) - return ii.hard[i] == false && place_free(argument0, argument1) Quelqu'un a une idée ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Bomberman Dim 18 Mai 2014 - 13:24 | |
| Rien compris a ce que tu voulais mais d'après l'erreur, ii.hard est une simple variable et non pas un tableau. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Dim 18 Mai 2014 - 15:46 | |
| C'était une référence à la fonction qu'a créé Onilink dans son bomberman. Sinon merci le problème venait bien de ça. |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Bomberman Ven 23 Mai 2014 - 15:11 | |
| Je cherche un moyen simple de créer une action pour une durée déterminée.
Par exemple je voudrais que pendant 5 secondes (ou 300 frames en 60fps) mon objet utilise le sprite spr_perso et ne bouge pas.
Dois-je passer par les alarmes, les timelines ? J'ai pas mal d'idées qui fonctionneraient mais cela créerait des variables inutiles pour mon objet (à part pour cette action) et ça me parait compliqué pour pas grand chose au final. |
|
| |
Contenu sponsorisé
| Sujet: Re: Bomberman | |
| |
|
| |
| Bomberman | |
|