Se connecter

Informatique

Création de Jeux

Sujet : J'aide les personne dans Game maker
chopsueys
Niveau 16
23 janvier 2015 à 21:32:49

Mince je me suis trompé pour l'exemple:

global.ID[5,2].pv

gustutu
Niveau 1
24 janvier 2015 à 01:20:00

J'avais déjà fait les boucles pour la création des instances quasiment de la même façon.

je pense que je vais créer plein de tableau en utilisant ton modèle pour les pv par exemple
global.pv[pos_x,pos_y]

Par contre je suis pas sure que ce soit le meilleur moyen de le faire par rapport a l'économie de mémoire mais bon ça devrait le faire.

chopsueys
Niveau 16
24 janvier 2015 à 01:30:41

Tu veux bien que chaque instance aient des variables différentes ? et tu ne veux pas que ce soit gérer au hasard ? tu veux pouvoir dire précisément par exemple que tel instance doit avoir plus de pv à tel position ?
Si c'est bien ça je ne vois pas d'autre solutions.
Et niveau mémoire je crois que la y'a pas de quoi s'inquiéter.

gustutu
Niveau 1
29 janvier 2015 à 19:11:02

Bonjour c'est encore moi.

J'ai besoin d'aide pour gérer les attaques au corps a corps de mon personnage.je me demande si je dois créer des sprite d'attaque et coder si une autre instance est proche de mon perso et que mon perso attaque alors l'instance se prend des dégâts.

OU

Je créer un objet bras+arme de mon perso,je le colle a l'epaule de mon perso,je lui fais faire une rottation autour de l'épaule lors d'une attaque et j'utilise les collisions pour gerer les dégâts.

Voila c'est tout merci ^^

chopsueys
Niveau 16
30 janvier 2015 à 00:22:42

Ca dépend si tu veux que ton perso puisse faire une attaque tout en se déplaçant ou non.
Si se n'est pas le cas ta 1er proposition suffit. Tu fais un test collision_circle() à l'endroit où se trouve l'arme à la fin de l'attaque.
Dans le 2eme cas il faut dissocier les jambes et le haut du corps.
Pas besoins de créer un nouvel objet, tu te sert de l'event draw pour afficher tes 2 sprites avec un draw_sprite() au même positions mais tu n'utilises pas la variable "image_index" de GM tu en créer 2 toi même (une pour les jambes l'autre pour le haut du corps) et tu modifie leur valeur en fonction de l'animation. Et puis même chose que pour la 1er solution tu utilises un collision_circle()
Si tu veux je peux t’expliquer ça plus en détails, dis moi juste si tu veux que ton perso attaque en se déplaçant ou non, et dis moi quel type de jeu c'est (quel vue: coté, dessus, isométrique...)

gustutu
Niveau 1
31 janvier 2015 à 18:36:06

J' ai un peu modifier mon jeux depuis mon dernier message,j'ai activé la physique.
Du coup j aimerais bien faire en sorte que mon personnage attaque sans avoir a dissocier le haut du corp et le bas dans un premier temps meme si ca ne sera pas super bien animé.

Du coup maintenant mon personnage a une cercel de collision autour de lui qui est gérer par la physique.
Maintenant j'aimerais bien changer le sprite de mon objet personnage lorsque j effectue un click gauche (sprite attaque) il doit pouvoir se déplacer en attaquant et il doit y avoir une temporisation entre deux attaque

Pour savoir si l'attaque a touché je pense mettre un cercle de collision au bout de la lance qui aurai une trajectoire circulaire.Est ce une bonne idée?

Image cercle de collision gérer par la physique:
https://www.noelshack.com/2015-05-1422725645-capt-circle-col-shape.png

Image cercle de collision au bout de la lance:
https://www.noelshack.com/2015-05-1422725664-capt-3-sprite-anim.png

tuliusdetritus
Niveau 3
01 février 2015 à 21:07:57

oui mais je te conseilles de prendre toute la lance parce que si l'ennemi est trop près quand bien même tu vas le transpercer ça fera pas de dégat et tu mourra comme une merde #ragequitlavie.
il vaut donc mieux englober le corps de la lance

chopsueys
Niveau 16
02 février 2015 à 00:41:47

Salut j'ai fais un test pour te montrer la façon de procéder:

vidéo: https://www.youtube.com/watch?v=EiHPTRBLQas&feature=youtu.be

code:


Create Event:

vitesse=6
vitesse_attaque=1
dis_impact=36


Alarm Event for alarm 0:

sprite_index=spr_deplace
image_speed=0


Alarm Event for alarm 1:

if collision_circle(x+lengthdir_x(dis_impact,image_angle),y+lengthdir_y(dis_impact,image_angle),10,obj_ennemi,1,1)
{
id_ennemi=instance_nearest(x+lengthdir_x(dis_impact,image_angle),y+lengthdir_y(dis_impact,image_angle),obj_ennemi)
id_ennemi.vie-=1
}


Draw Event:

draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,-1,image_alpha)

image_angle=point_direction(x,y,mouse_x,mouse_y)

if keyboard_check(vk_left)
{x-=vitesse}
if keyboard_check(vk_right)
{x+=vitesse}
if keyboard_check(vk_up)
{y-=vitesse}
if keyboard_check(vk_down)
{y+=vitesse}

if mouse_check_button_pressed(mb_left) 
and sprite_index != spr_attaque
{
sprite_index=spr_attaque
image_speed=vitesse_attaque
alarm[0]=sprite_get_number(spr_attaque)/image_speed //  fin de l'annimation 
alarm[1]=(sprite_get_number(spr_attaque)/image_speed)/2 // calcul de l'impact 
}
_-PowerUp-_
Niveau 10
02 février 2015 à 12:53:32

Salut, je voudrais faire en sorte que l'ennemi est 100 PV, et lorsque le missile (obj_missile) touche l'ennemi, il perde 50 PV et lorsque l'ennemi a 0 PV alors l'ennemi est mort (destroy)

donc j'ais fais sa :

health = 100;

if place_meeting(x, y, obj_missile)
{
instance_change(obj_ennemi, destroy);
}

j'ais pas encore fait le système de perte de vie, j'ais juste essayer les collisions mais sa ne fonctionne pas.

:merci:

_-PowerUp-_
Niveau 10
02 février 2015 à 17:36:54

C'est bon je l'est fiat en drag&drop
:merci: quand même

_-PowerUp-_
Niveau 10
02 février 2015 à 17:42:32

par contre maintenant mon joueur ne peut pas tirer et bouger en même temp...

Soul-Caribou
Niveau 10
02 février 2015 à 19:47:14

Salut à vous,

Je continue mon apprentissage de GM et je me retrouve face à un petit problème actuellement dont je ne trouve pas la solution, ça ne doit pas être grand chose en plus, désolé si c'est dérisoire :/

Donc voilà, mon projet est en top down jouable au gamepad (il y a déjà les mouvements et quelques actions de dispo). Il y a plusieurs pièces reliées par des portes. Chaque porte dispose de deux interrupteurs servant à l'ouvrir (un dans chaque salle desservie).

J'ai procédé ainsi :
- Interrupteur / Create Event :

door = instance_nearest(x,y,obj_door);

- Interrupteur / Step Event :

if place_meeting (x, y, obj_player)
    {
    if gamepad_button_check_released(0,gp_face1)
        {
            with(door)
                {
                if active = 0 active += 1;
                if active = 1 active -= 0;
                }
        }
    }

A noter que j'ai essayé ici différents trucs avant ce with dégueulasse, comme utiliser plutôt des "if (door).active = 0" ou d'autres improvisations tout aussi foireuses :D

La variable "active" correspond à une variable que j'ai déclaré dans le Create event de l'obj_door, et qui une fois à 1 est censée ouvrir la porte par le biais d'autres bouts de codes dans le step event de la porte modifiant son sprite_index. Mon soucis est qu'en regardant par le Debug Mode, la variable "active" ne... s'active jamais, je n'arrive pas à modifier la variable locale de cette foutue instance depuis l'interrupteur ^^

Où est-ce que mon approche est foireuse et comment faire pour ce genre de procédé? Merci d'avance.

Soul-Caribou
Niveau 10
02 février 2015 à 23:29:17

J'ai rajouté pour le place_meeting et le gamepad_button_check_released "= true" (true noob ^^)

Je pense que j'ai tout faux et suis partis sur une mauvaise piste j'ai tenté pas mal de modif mais je pense m'empêtrer plus qu'autre chose...

Quelle bonne approche pour créer ces instances d'interrupteurs et de portes qui se "lient" automatiquement sans créer 36 couples d'objets portes/interrupteurs uniques? :/

chopsueys
Niveau 16
03 février 2015 à 00:31:34

Salut pourquoi utiliser un interrupteur ? Tu ne préfèrerais pas qu'il suffise d'être asse proche de la porte pour qu'elle s'ouvre d'elle même lorsque l'on appuis sur une touche ?

Soul-Caribou
Niveau 10
03 février 2015 à 01:59:39

Ce serait tellement plus simple :)

Mais le but derrière cette volonté de faire compliqué sert plusieurs points de gameplay principalement :

  • Actionner les portes au contact permettrait de se mettre trop facilement à couvert derrière elles, tandis qu'un contrôle "à distance" inclut d'autres situations plus stratégiques dont il me faudrait un autre pavé à expliquer mais qui sont bien réelles (mettons en exemple basique une salle "piège" avec un switch pour ouvrir mais les portes qui se referment en entrant et sans interrupteur de l'autre côté)
  • Certains interrupteurs auront d'autres effets il est donc important d'avoir des interrupteurs plus "classiques" pour qu'ils soient en quelques sortes noyés dans la masse.
  • D'un point de vue pitch, c'est futuriste avec des niveaux se déroulant principalement dans des vaisseaux militaires, ce ne sont pas de "vulgaires" portes en bois avec une poignée :o))

Et puis d'un point de vue apprentissage perso, je voudrais bien comprendre comment m'amuser avec ces variables :)

Je testerai plusieurs pistes que j'ai trouvé demain, je vous tiendrai au courant si je trouve quelque chose.

_-PowerUp-_
Niveau 10
03 février 2015 à 12:15:35

J'ais réussi en drag&drop

par contre mon perso ne peut pas tirer et bouger en même temps, soit l'un soit l'autre :(

cyruskun
Niveau 5
04 février 2015 à 19:39:56

Bonjour, j'aurais besoin d'aide.

Tout d'abord, je créer un jeu en 2D vu de coté plateforme/action dans le meme genre qu'un castlevania par exemple. J'utilise une room physique donc mon personnage n'a pas la propriété de solide.
J'ai un problème avec l'animation du coup d'épée que donne mon perso.
Dans l’événement "create" j'ai mis entre autre une variable "epee = false", ensuite dans l'événement step j'ai mis ceci : https://www.noelshack.com/2015-06-1423074802-0d6bae72820fbce0127eefac1d5c12e1.png
et j'ai créé des événement où quand j'appuis sur down, epee devient vrai, puis quand je relache cette meme touche epee redevient faux. Donc normalement lorsque je maintient down, mon sprite "spr_epee" (qui contient 3 images) devrait défiler a l'infini puis s'arreter lorsque je relache.

Seulement voila, lorsque j'appuis sur la touche, il n'y a que la 1ere image de mon sprite qui se met, et il met nécessaire de me déplacer pour que les 3 images du sprites défilent.
Ca semble logique que ca soit dut a l'instruction : " image_speed = phy_speed_x / 10; " mais j'ai beau l'isoler ca ne change rien...

Quelqu'un pourrait-il m'aider svp.

cyruskun
Niveau 5
04 février 2015 à 20:13:59

Bonjour, j'aurais besoin d'aide.

Tout d'abord, je créer un jeu en 2D vu de coté plateforme/action dans le meme genre qu'un castlevania par exemple. J'utilise une room physique donc mon personnage n'a pas la propriété de solide.
J'ai un problème avec l'animation du coup d'épée que donne mon perso.
Dans l’événement "create" j'ai mis entre autre une variable "epee = false", ensuite dans l'événement step j'ai mis ceci : https://www.noelshack.com/2015-06-1423074802-0d6bae72820fbce0127eefac1d5c12e1.png
et j'ai créé des événement où quand j'appuis sur down, epee devient vrai, puis quand je relache cette meme touche epee redevient faux. Donc normalement lorsque je maintient down, mon sprite "spr_epee" (qui contient 3 images) devrait défiler a l'infini puis s'arreter lorsque je relache.

Seulement voila, lorsque j'appuis sur la touche, il n'y a que la 1ere image de mon sprite qui se met, et il met nécessaire de me déplacer pour que les 3 images du sprites défilent.
Ca semble logique que ca soit dut a l'instruction : " image_speed = phy_speed_x / 10; " mais j'ai beau l'isoler ca ne change rien...

Quelqu'un pourrait-il m'aider svp.

cyruskun
Niveau 5
04 février 2015 à 20:14:20

Bonjour, j'aurais besoin d'aide.

Tout d'abord, je créer un jeu en 2D vu de coté plateforme/action dans le meme genre qu'un castlevania par exemple. J'utilise une room physique donc mon personnage n'a pas la propriété de solide.
J'ai un problème avec l'animation du coup d'épée que donne mon perso.
Dans l’événement "create" j'ai mis entre autre une variable "epee = false", ensuite dans l'événement step j'ai mis ceci : https://www.noelshack.com/2015-06-1423074802-0d6bae72820fbce0127eefac1d5c12e1.png
et j'ai créé des événement où quand j'appuis sur down, epee devient vrai, puis quand je relache cette meme touche epee redevient faux. Donc normalement lorsque je maintient down, mon sprite "spr_epee" (qui contient 3 images) devrait défiler a l'infini puis s'arreter lorsque je relache.

Seulement voila, lorsque j'appuis sur la touche, il n'y a que la 1ere image de mon sprite qui se met, et il met nécessaire de me déplacer pour que les 3 images du sprites défilent.
Ca semble logique que ca soit dut a l'instruction : " image_speed = phy_speed_x / 10; " mais j'ai beau l'isoler ca ne change rien...

Quelqu'un pourrait-il m'aider svp.

cyruskun
Niveau 5
04 février 2015 à 20:14:44

Bonjour, j'aurais besoin d'aide.

Tout d'abord, je créer un jeu en 2D vu de coté plateforme/action dans le meme genre qu'un castlevania par exemple. J'utilise une room physique donc mon personnage n'a pas la propriété de solide.
J'ai un problème avec l'animation du coup d'épée que donne mon perso.
Dans l’événement "create" j'ai mis entre autre une variable "epee = false", ensuite dans l'événement step j'ai mis ceci : https://www.noelshack.com/2015-06-1423074802-0d6bae72820fbce0127eefac1d5c12e1.png
et j'ai créé des événement où quand j'appuis sur down, epee devient vrai, puis quand je relache cette meme touche epee redevient faux. Donc normalement lorsque je maintient down, mon sprite "spr_epee" (qui contient 3 images) devrait défiler a l'infini puis s'arreter lorsque je relache.

Seulement voila, lorsque j'appuis sur la touche, il n'y a que la 1ere image de mon sprite qui se met, et il met nécessaire de me déplacer pour que les 3 images du sprites défilent.
Ca semble logique que ca soit dut a l'instruction : " image_speed = phy_speed_x / 10; " mais j'ai beau l'isoler ca ne change rien...

Quelqu'un pourrait-il m'aider svp.

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