On va dire que c'etait a cause la fatigue hein !
https://www.mediafire.com/?5c4yy3oudxp7vqj
Par ce qu'il faut pas que tu fasses change instance sinon l'évènement create ne s'active pas il faut que tu supprimes le pistolet et que tu mette create instance et même chose dans le rifle (dans l'event roulette)
Ah ouais ca c'est traitre n'empeche quand on connait pas ! Bon en tout cas ca fonctionne ,plus de message d'erreur.Il me reste un dernier probleme ,comment fait t on pour regler la cadence de tir ? En changeant les valeurs "cadence" dans set var ,ca change rien
Ben forcement si tu laisse un event mouse button avec dedans créer une balle le code qu'il ya dans le step sert à rien.
Youhou ca marche \o/
Et bien merci beaucoup pour tout ton aide ! Je vais me débrouiller seul pour le reste ,après bien entendu si tu as quelque tuto ou autre moyens pour avoir toutes tes connaissances ,je suis preneur !
Me revoila o/
Pour ajouter un peu de difficulté a mon "jeu" ,j'aimerais y mettre une gestion de munitions,avec un rechargeemnt quand le joueur passe sur une boite de munition mais je ne sais pas comment faire.Si vous pourriez m'aidez ce sera sympa ! (et vous serez bien evidemment credité dans le jeu ,logique ! )
Ben c'est toujours une question de variable. Tant que t'orras pas compris comment ça marche tu serras tout le temps bloqué.
Tu crée une variable dans create balle_total=40 par exemple puis balle_chargeur=12
Donc la tu dispose dès le début de 40 balles plus 12 balles dans le flingue (12 étant le nombre maximum de balles pour cette arme).
Tu as normalement ce code pour tirer:
if mouse_check_button(mb_left)
{
if tire_ok==1
{
tire_ok=0
alarme_cadence=0
instance_create(x,y,obj_balle)
}
}
Donc il te suffi de rajouter une condition à ce morceau de code. Tu dis que tout ce code est valide seulement si le nombre de balles dans le chargeur est plus grand que 0 et tu précises que tu retires 1 balle au chargeur:
if balle_chargeur>0
{
if mouse_check_button(mb_left)
{
if tire_ok==1
{
tire_ok=0
alarme_cadence=0
instance_create(x,y,obj_balle)
balle_chargeur-=1
}
}
}
Si tu veux recharger avec la touche R:
if keyboard_check_pressed(ord("R"))
{
balle_manquante=12-balle_chargeur// on calcul le nombre de balles dont on a besoin
if balle_manquante<=balle_total// si le résultat est plus petit ou égal au balle total
{
balle_total-=balle_manquante // alors on soustrait ce résultat à balle total
balle_chargeur+=balle_manquante// et on ajoute ce résultat au balle du chargeur
}
else // sinon (si le résultat est plus grand que le nombre de balle total)
{
balle_chargeur+=balle_total //alors on ajoute au chargeur toutes les balles
balle_total-=balle_total // et on soustrait sa propre valeur à balle total
}
}
if balle_chargeur<0{balle_chargeur=0}// ici on dit que balle_chargeur ne peut pas descendre
// en dessous de 0
if balle_total<0{balle_total=0} // même chose pour balle_total
Merci,bah a vrai dire c'est surtout avec le code GML que j'ai du mal ,avec les icones je me debrouille mais on est vite limité si on utilise que ca.
Apres si tu as un lien d'un tuto "complet" de GML ,je suis preneur
Bonjour y'a-t-il un ouvrage bien expliqué sur les mécanismes de game maker?
En utilisant ton code ,chopsuey,j'ai fait ca,du moins je veux (grosse difference !) que quand mon perso (explorer) touche une caisse de munitions (ammo),ca lui ajoute 5 balles a son chargeur et qu'il puisse tirer tout de suite sans avoir a appuyer sur une touche de rechargement.Mais ca ne marche pas et je ne vois pas pourquoi.Une derniere aide s'il te plait ?
Le code:
if collision_rectangle(32,32,32,32,ammo,explorer,100)
{
balle_manquante=5-balle_chargeur
if balle_manquante<=balle_total
{
balle_total-=balle_manquante
balle_chargeur+=balle_manquante
}
else
{
balle_chargeur+=balle_total
balle_total-=balle_total
}
}
if balle_chargeur<0{balle_chargeur=0}//
dans ce cas les variable balle_manquante et balle_total ne servent plus à rien.
Ce code suffit:
if position_meeting(x,y,ammo)
{
balle_chargeur+=5
}
if balle_chargeur<0{balle_chargeur=0}
Et petite astuce si tu veux afficher le résultat d'une variable dans le jeu (le nombre de balle pour cette exemple) :
Crée un nouvelle objet que tu nommeras obj_draw
dans l'event draw écris:
draw_text(view_xview,view_yview,"balle: "+string(objet.balle_chargeur))
remplace "objet" par le nom de l'objet qui contient cette variable.
exemple: (rifle.balle_chargeur)
tu peux écrires entre les " " ce que tu veux à la place de "balle: " (c'est le texte qui apparaitra devant la variable)
Et rajoutes derrière view_xview et view_yview la position que tu veux sinon le texte serra écrit en haut à gauche, exemple :
draw_text(view_xview+40,view_yview+40,"balle: "+string(objet.balle_chargeur))
Merci encore (je me repete je sais )
Mais il y a un petit probleme,quand le perso passe sur la caisse de munitons ,l'objet se detruit avant qu'il ai pu donner des munitions .J'ai essayer de retarder sa desruction avec une alarme
(Alarm Event for alarm 0:
destroy the instance
Collision Event with object gun:
set Alarm 0 to 1.1)
Et en testant j'ai remarqué que si le perso reste sur la caisse,les munitions augmente et la caisse de disparait qu'apres que le perso ne soit plus en collision avec.
Et une question pour ton astuce (je t'en remercie ,c'est toujours sympa de voir ses balles),il n'y a pas un moyen de changer la police d'ecriture ,couleur taille etc ?
Merci d'avance !
Essayes ça :
if position_meeting(x,y,ammo)
{
balle_chargeur+=5
id_ammo=instance_position(x,y,ammo) // on récupère l'id de l'instance dans la variable
with (id_ammo){instance_destroy()} // puis on détruit cette instance
}
if balle_chargeur<0{balle_chargeur=0}
Pour changer la police. Crée un "font" ( les 2 T majuscule entre le sablier et le script)
En suite tu choisie la couleur la police la taille etc et dans le draw tu déclare que tu veux te servir de ce font:
draw_set_font(nom du font);
draw_set_halign(fa_left); //pour aligner sur la gauche quand tu saute une ligne dans un texte
draw_text(view_xview+40,view_yview+40,"balle: "+string(obj_player.balle_chargeur))
Tout marche,j'ai juste du rajouter ca "if balle_chargeur<balle_total" histoire de pas avoir trop de balle a la fois !
Pour le reste ,encore mille merci !!
slt,
Voila je crée un jeu et je veut mettre de la musique de fond.
Je rajoute ensuite de la musique pour les impact avec les pièces et ennemis et la quand je commence le jeu la musique de fond démarre mais dès que je prend une pièces ou touche un ennemie il a bien le bruit d’impact mais la musique de fond se coupe! POURQUOI!!!
Sinon dans mes niveaux le perso principale a des vies puis quand il touche un ennemi il en perd une; comment faire pour qu'il soit "invincible" et pendant combien de temps de préférence. Je peux faire renvoyer l'ennemie dans la direction opposée mais si je bouge mon perso dans la direction de l'ennemi (sans faire exprès) il retouche ennemi et perd encore une vie. J'ai utilisé une méthode mais je ne l'aime pas c'est détruire ennemie et en créée un autre dans un coin sauf que parfois ils se bloquent entre eux (un ennemi apparaît sur un autre(il lui vole ses pixel:))
PS: peut-on optimiser le jeu (j'ai un menu et 20 salles derrière)
Merci de répondre.
Salut si tu utilises gamemaker 8.0 ou 8.1 est ce que tes sounds sont cochés à "normal sound" ? est que tu utilises des .wav ?
Pour ton invincibilité temporaire tu peux utiliser une alarme. exemple:
dans le create de l'objet player:
invu=0
dans la collision avec l'ennemi:
if invu=0
{
invu=1
vie-=1
alarm[0]=20
}
et dans alarme 0:
invu=0
A toi de définir la durée de l'alarme ;)
Je suis 8.1 version gratuite et les format audio sont en wav / MP3(j'ai les 2)
quand je les met en "normal sound" la musique de font marche mais il n'y a pas les bruits d'ennemis et de la pièce
Pour l'invincibilité tu peut plus détaillé(je n'ai pas encore utiliser d'alarme donc je sais pas comment met servir )
pour l'invincibilité(alarme 2s) j'aimerai qu'il clignote et puisse passer a travers l'ennemis pendant son invincibilité.
je suppose que se sont des codes.
je sais je suis nul mais je débute.
pourquoi dans mes niveaux mon perso bouge mais en saccadé ?
merci d'avance pour la réponse
Salut
J'ai un problème dans GM Studio.
la fonction sprite_index ne marche pas, quelqu'un peut m'expliquer pourquoi?
Voici mon code:
C'est un de mes premiers jeux avec Game Maker, excusez moi si je suis nul
Et je n'utilise pas image_xscale car l'éclairage du sprite change quand il se retourne.