Se connecter

Informatique

Création de Jeux

Sujet : J'aide les personne dans Game maker
labascule
Niveau 5
23 août 2015 à 21:22:57

Salut à tous, j'avais une question concernant un power up à mettre en place, mon perso tire 1 projectile à la fois, dans son global left button :

if firing = false

{
firing=true
alarm [0] = global.player_attspeed
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction);

}

j'aimerais que lorsque je ramasse l'obj power up "tripleshot" , cette ligne de code permettant le triple shot deviennent le tir actuel:

if firing = false
{
firing=true
alarm [0] = global.player_attspeed
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction);
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction+15);
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction-15);
}

Pour les powers up plus simple (+de dégâts,de vitesse etc..) j'utilises les scripts car les arguments permettent une certaine simplicité d’exécution mais pour un power up comme celui ci je suis un peu paumé.

JIJI_Black
Niveau 2
23 août 2015 à 22:35:27

Salut dans ce cas essaye if firing = 1 {} esle if firing = 2 {} si super/hyper power up, else if firing = 3 {} etc...

Je dis ça, j'ai pas testé mais je pense que ça marche.

labascule
Niveau 5
24 août 2015 à 01:12:06

J'ai un peu galéré mais j'ai fini par faire ceci

if firing = 0

{
firing=1
alarm [0] = global.player_attspeed
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction);
if global.player_tripleshot = 1
{
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction+15);
action_create_object_motion(obj_bullet,x,y,global.player_bulletspeed,direction-15);
}
}

et ça marche parfaitement, j'avais déjà essayé le "else if" JIJI mais soit l'alarme ne fonctionnait pas(donc 1 million de projectiles tirés en même temps :fou: ,soit le tripleshot fonctionnait que sur le premier tir au moment de ramasser le power_up puis disparaissait , la ça fonctionne correctement.

Merci d'avoir tenter de m'aider, si le code vous parait chelou ou simplifiable merci de me le faire savoir. :ange:

AjukIX
Niveau 14
24 août 2015 à 18:56:48

Salut, j'ai une petite question. Je souhaite mettre un bouton (menu) qui reste fixe dans la view et qui fait quelque chose quand on clic dessus. Le seul truc que j'arrive pas à faire c'est que l'objet reste fixe dans la view quelque soit la position de celle-ci. Je sait faire ça avec draw_sprite mais pas avec un object...

Smooth-Caribou
Niveau 10
24 août 2015 à 19:40:49

Est-ce que tu place bien ton code dans l'event "Draw GUI"?

Ce qui est dessiné dans cet event l'est en fonction de l'écran, c'est à dire que si tu y dessines quelques chose en 0,0, ce sera toujours dans le coin supérieur gauche quelque soit l'endroit de la room où tu te trouves.

AjukIX
Niveau 14
24 août 2015 à 19:53:34

Oui je connait cette fonction. Le souci c'est que ça crait un sprite et pas un objet. Je ne peut donc pas cliquer dessus pour interagir avec. Je souhaite que ça se comporte comme un bouton.

JIJI_Black
Niveau 2
24 août 2015 à 23:59:37

Bonsoir !

Pour le faire avec un objet tu dois faire ce code dans son event Step.

x = view_xview // +un nombre si position précise
y = view_yview // +pareil

Tu vas tout même voir (je ne sais pas pourquoi) qu'il bouge un peu mais restera à sa position.

AjukIX
Niveau 14
25 août 2015 à 09:54:01

Bonjour JIJI_Black
J'ai en effet testé cette méthode et le fait que l'objet "vibre" me dérange un peu mais pour le moment je n'ai rien trouvé qui pourrait faire en sorte que l'objet reste bien fixe. J'avais pensé avec un draw_sprite et créer un objet invisible dans lequel un event dit que si on clic avec la souris à l'endroit de la view où il y a le sprite ça declenche quelque chose mais je n'ai pas trouvé....

AjukIX
Niveau 14
25 août 2015 à 10:49:55

Bon je ne peut pas editer mon post alors je poste ici:
J'ai finalement réussi avec un draw_sprite et en testant la position de la souris dans la view au moment ou je fait un clic-droit. Voici le code si ça intéresse quelqu'un.
Dans un event "glob right pressed"
globx=mouse_x-view_xview globy=mouse_y-view_yview

Puis dans un event "step" pour tester la position de la souris et effectuer une action:
if (globx>128 and globx<192) //la condition { if (globy>64 and globy<128) //l'autre condition instance_create(200,200,lol) // j'ai choisi de créer un objet mais on met ce qu'on veut globx=0 globy=0 // bien penser à réinitialiser les variables }

PSHS: comment vous faites pour mettre le code dans un cadre sur les topics ? :p

labascule
Niveau 5
26 août 2015 à 14:14:47

On utilise la fonction citation :ok:

MonnaiePrisme
Niveau 3
26 août 2015 à 15:04:55

Bonjour tt le monde
J'essaye de créer un shoot em up mais mon problème est que il y a plusieurs ennemis dans la room et la=e problème est qu'il n'y a que 1 ennemis qui tire, comment pourrais-je tous les faire tirer en même temps???
Quelqu'un pourrait m'aider svp
Cordialement

labascule
Niveau 5
26 août 2015 à 15:20:59

Ajoutes un x et un y aux projectiles tirés , pour faire comprendre au jeu que chaque ennemis doit tirer individuellement ,

par exemple:

move_towards_point (obj_player,obj_player,15)

devient

move_towards_point (obj_player.x,obj_player.y,15)

La tu passes de "le même objet (car 3 mêmes ennemis sont qu'un objet tu comprends?) tire donc le premier créé tire" , à "chaque objet tire en fonction de son positionnement ,car le x et le y se référent à la position du dit objet individuellement"

MonnaiePrisme
Niveau 3
26 août 2015 à 15:55:00

Justement c'est ce que j'ai fait mais ça ne marche pas ouch2:

labascule
Niveau 5
26 août 2015 à 16:24:11

Dans ce cas verifies le nom des sprites et objects , c'est peut etre les mêmes, sinon je vois pas.

MonnaiePrisme
Niveau 3
26 août 2015 à 16:48:12

J'en suis sur j'ai vérifié!!

MonnaiePrisme
Niveau 3
26 août 2015 à 16:54:55

Il n'y a pas un autre moyen ???

Smooth-Caribou
Niveau 10
26 août 2015 à 17:56:19

normalement tes ennemis ont un "instance_create(x,y,obj_bullet)" quelque part, où obj_bullet sont tes projectiles.

Si tu as mis à cet endroit "instance_create(obj_ennemi.x, obj_ennemi.y, obj_bullet)", le soucis c'est que obj_ennemi sera lu comme l'id d'une instance, mais ce sera normalement tout le temps la même instance, auquel cas tes divers ennemis enverront TOUS leurs projectiles depuis UNE SEULE instance ennemi.

Il faut donc bien que ce soit "x,y" pour que chaque projectile utilise la position relative de l'instance ennemi.

Si ce n'est pas clair n'hésite pas, sinon il faudra donner un peu plus de détail sur ton code.

MonnaiePrisme
Niveau 3
26 août 2015 à 18:03:41

Merci c'est bon j'ai trouvé il y a 15 min il faut créer un event step puis à l'intérieur un test chance et placer un create moving x:0,y:0 et en direction j'ai mis point_direction(x,y,obj_player.x,obj_player.y) et cocher relative et pour moi ça marche parfaitement merci!!

JIJI_Black
Niveau 2
03 septembre 2015 à 23:31:14

Bonsoir et :up: !

Revhunter

dans create event

tourelle_id = instance_number(obj_tourelle);

Au temps pour moi, ce code fonctionne, je n'avais pas fais attention à l'erreur, elle venait d'autre part.

AjukIX

PSHS: comment vous faites pour mettre le code dans un cadre sur les topics ? :p

J'utilise cette icone < > nommé code juste à côté de la citation. ^^

.
Je cherche toujours a faire en sorte que la tourelle de soin vise la cible quand ses vies sont à moins de 100 et vise une autre cible à moins de 100 une fois celle ci à 100, c'est pas gagné mais je suis sûre que c'est une question d'ID car quand je l'indique de viser ex: (100015), elle vise cette ID sans problème.

Je me demande si je devrais faire quelque chose comme choisir l'ID de l'objet créé, tester s'il existe une ID à moins de 100vies et indiquer de le viser si oui..

Je remarque aussi que tout objets créé commencent avec une ID de 100000 ou + même si j'utilise : tourelle_id = instance_number().

Est-il possible de changer de mon chois l'ID crée ?

Ma tourelle de soin vise grâce à son image_angle, je vous le rappel au cas où.

Je ne vous dérangerais pas plus que ça si vous ne trouvez vraiment pas.

Merci d'avance si vous trouvez la solution ! :-)

Pseudo supprimé
Niveau 4
05 septembre 2015 à 15:19:42

J'ai juste la pure flème de lire 80 page, donc m'en voulez pas si la question a été posé !

-1 J'essaye de faire un jeu d'platform. J'ai mon personnage (tout va bien), il avance (tout va toujours bien), quand il avance la seconde image de l'objet apparaît (et la tout va pas bien). J'ai envie quand il avance que l'image se répete (l'image de base et l'image ou il fais un pat) pour que ça fait une animation et que ça le fasse marcher normalement, comment faire ?

-2 Est-ce possible de faire des sauvegardes/chargement de sauvegarde avec ce logiciel ?

Sujet : J'aide les personne dans Game maker
   Retour haut de page
Consulter la version web de cette page