AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Bomberman

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 11:01

Bon ben je raconte de la ***** alors  gnii 
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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 12: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 !
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 13: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 ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 13: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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 14: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 ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 15: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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 15:16

Tu pourrais me donner un exemple de chargement de sprites ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 15:33

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".

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 15:39

Ok merci !
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2623
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 15: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 Smile

_________________
Cliquez pour accéder aux topics dédiés !
   
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 16: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.
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2623
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 16: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 !
   
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 16: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.
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2623
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 17: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 !
   
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 11 Mai 2014 - 18: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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Lun 12 Mai 2014 - 21: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 ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Mar 13 Mai 2014 - 5:09

Comment ca ? Pas compris ta question là...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Mar 13 Mai 2014 - 10:16

Le jeu va chercher les ressources peut importe où est l'exécutable ? (tant que le dossier est à côté)
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Mar 13 Mai 2014 - 12: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 ?
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
avatar

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
...

MessageSujet: Re: Bomberman   Mar 13 Mai 2014 - 13: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:
 
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Mar 13 Mai 2014 - 18:49

Ca a marché ! Merci beaucoup.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Mer 14 Mai 2014 - 9: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))
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8924
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Bomberman   Mer 14 Mai 2014 - 9: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.

_________________
                 
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Mer 14 Mai 2014 - 11:31

Et comment fonctionnent les listes sous GM du coup ?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8924
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Bomberman   Mer 14 Mai 2014 - 12: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 Razz
Ç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).

_________________
                 
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Bomberman   Mer 14 Mai 2014 - 23: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).
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 18 Mai 2014 - 11: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 ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Bomberman   Dim 18 Mai 2014 - 11: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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Dim 18 Mai 2014 - 13: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.
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Bomberman   Ven 23 Mai 2014 - 13: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.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Bomberman   

Revenir en haut Aller en bas
 
Bomberman
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: