CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J'aide les personne dans Game maker

JIJI_Black
JIJI_Black
Niveau 2
16 juin 2015 à 21:19:37

Salut à tous.

Alors c'est rien de bien grave mais je pense que c'est assez compliqué de trouver la solution, en tout cas pour ma part.

Je crée un jeu style Tower Défense a ma façon.
Ça serais un genre Tower vs Tower vu du dessus.

Je programme actuellement en D&D car je n'arrive pas a comprendre le tout du GML, je connais quelques petite bases mais pas tous.

Alors évidement j'ai eu un comportement non désiré de la part de la tourelle de soin.

Elle soigne une cible mais des que la bar de celle ci atteint 100 elle reste sur cette cible et ne soigne donc pas les autres tourelles.

J'utilise actuellement un code en GML copier.

image_angle = image_angle+(sin(degtorad((point_direction(x,y,object_exists(Cible) .x+lengthdir_x(object_exists(Cible) .speed*point_distance(x,y,object_exists(Cible) .x,object_exists(Cible) .y)*0.05,object_exists(Cible) .direction),object_exists(Cible) .y+lengthdir_y(object_exists(Cible) .speed*point_distance(x,y,object_exists(Cible) .x,object_exists(Cible) .y)*0.05,object_exists(Cible) .direction)))-image_angle))*40);

Je n'y comprend rien à ce code (j'adorerais en faire moi même car il m’offrirais de plus grande possibilité de créations, mais je trouve ça difficile d'adaptation et je ne sais pas si j'y arriverais un jour...) mais il donne une visé parfaite a ma tourelle et ça c'est impossible au D&D du moins se que je pense, mais j'aime ce système de visé précise. ^^

Se que je désire, c'est que la tourelle de soin, soigne toute les tourelles une par une, et non resté sur une tourelle alors que sa bar est à 100% de sa vie.

Ça fais un bon moment que j'essaye plusieurs formules et que je recherche sans trouver de solution.

Voila et merci d'avance !

Soul-Caribou
Soul-Caribou
Niveau 10
17 juin 2015 à 14:49:57

Salut JIJI_black,

Ton morceau de code (plutôt illisible pour moi, enfin ça ne donne même pas envie de comprendre comment ça marche pour une si petite utilité au final) ne concerne que l'image angle de ton sprite. Je ne pense pas que ce soit ça qui coince, mais plutôt probablement la variable Cible qui ne désigne pas de nouvelle instance quand celle qu'elle soigne l'est totalement.

Il faut donc que lorsque la variable "vie" (ou je ne sais pas comment tu l'as appelée) est à 100, la variable Cible est modifiée et pointe alors vers une autre instance à soigner.

Ce que je ferai je pense comme ça, c'est créer un objet lié à ta tourelle de soin (au moment de la création de la tourelle de soin, ça créé une instance de ce nouvel objet), qui serait invisible ingame mais qui aurait malgré tout un sprite (servant pour les collisions) représentant son aire d'effet, je vais l'appeler obj_zonesoin pour que ce soit plus simple ensuite.

Tu peux ensuite dans ton obj_tourelleasoigner vérifier à chaque Step en plusieurs étapes :
SI l'instance est en collision avec obj_zonesoin,
puis SI sa variable "vie" est plus petite que 100,
et enfin SI la variable Cible de ton obj_tourellesoin est égale à 0, alors cette variable obj_tourellesoin.Cible est attribué à l'id de l'instance.

Il faudra ensuite dans le code de obj_tourellesoin lui dire à chaque step que si la variable vie de sa Cible (Cible.vie) est égale ou supérieur à 100, alors Cible = 0 (et accessoirement vie = 100; pour éviter les débordements ^^). Ceci pour faire en sorte qu'une tourelle à la fois soit soignée vu qu'en disant Cible = 0, ça permettra avec ce qu'on a fait au dessus à d'autres tourelles abimées de devenir la nouvelle Cible.

J'espère avoir été assez clair, en D&D ce n'est pas le plus évident et tu ne devrais pas te braquer avec le genre de code que tu as utilisé qui est déjà bien trop poussé pour ton niveau (et le mien), il n'y a rien de pire que d'utiliser des trucs sans les comprendre, pas pour la forme hein mais pour le fait que tu n'assimiles pas la logique, tu perds du temps au final en faisant ça plutôt que d'y aller méthodiquement étape après étape, je t'assure.

Je te conseille les tutos de TheErnest570 sur youtube, il explique vraiment bien et il y a du D&D et du GML, ça m'a énormément aidé au début ;)

Bon courage et en espérant avoir pu au moins te donner quelques pistes à expérimenter ;)

Message édité le 17 juin 2015 à 14:50:45 par Soul-Caribou
JIJI_Black
JIJI_Black
Niveau 2
17 juin 2015 à 16:28:36

Le 17 juin 2015 à 14:49:57 Soul-Caribou a écrit :
Salut JIJI_black,

Salut.

Pour le code c'est bien de l'image angle mais celui ci permet une meilleur précision sur une cible en mouvement à presque n'importe quel distance.
Je suis aussi sûr que le problème viens de l'objet Cible.
J'avais essayé ceci (Cible.vie < 100) , je croyais que si après la vie de la cible aurait atteint 100 il changerait.
J'avais tort..

Il faut donc que lorsque la variable "vie" (ou je ne sais pas comment tu l'as appelée) est à 100, la variable Cible est modifiée et pointe alors vers une autre instance à soigner.

C'est bien vie.
C'est exactement ce que je cherche a faire.

Ce que je ferai je pense comme ça, c'est créer un objet lié à ta tourelle de soin (au moment de la création de la tourelle de soin, ça créé une instance de ce nouvel objet), qui serait invisible ingame mais qui aurait malgré tout un sprite (servant pour les collisions) représentant son aire d'effet, je vais l'appeler obj_zonesoin pour que ce soit plus simple ensuite.

L'idée de la zone de soin est bonne, je sais comment la faire mais c'est pas exactement se que je recherche.
Autrement mon IA aussi devrais donc savoir où placé les tourelles de soin, je vois déjà comment le faire.
Je mémorise cette idée au cas ou ^^

Il faudra ensuite dans le code de obj_tourellesoin lui dire à chaque step que si la variable vie de sa Cible (Cible.vie) est égale ou supérieur à 100, alors Cible = 0 (et accessoirement vie = 100; pour éviter les débordements ^^). Ceci pour faire en sorte qu'une tourelle à la fois soit soignée vu qu'en disant Cible = 0, ça permettra avec ce qu'on a fait au dessus à d'autres tourelles abimées de devenir la nouvelle Cible.

Je testerais ça !

J'espère avoir été assez clair, en D&D ce n'est pas le plus évident et tu ne devrais pas te braquer avec le genre de code que tu as utilisé qui est déjà bien trop poussé pour ton niveau (et le mien), il n'y a rien de pire que d'utiliser des trucs sans les comprendre, pas pour la forme hein mais pour le fait que tu n'assimiles pas la logique, tu perds du temps au final en faisant ça plutôt que d'y aller méthodiquement étape après étape, je t'assure.

Ça je le confirme !
J'ai déjà perdu un temps monstre à essayer de le pigé ce code et d'autres codes sans parlé de la recherche sur le net.
Tu as tout a fais raison, je souhaite aussi faire les choses bien car une tourelle sans précision en est pas une mais bon, sans comprendre le code par sa logique ça le fera pas, je n'aurais que son effet et au final j'apprend rien.

Je te conseille les tutos de TheErnest570 sur youtube, il explique vraiment bien et il y a du D&D et du GML, ça m'a énormément aidé au début ;)

Très bien je les regarderais!

Bon courage et en espérant avoir pu au moins te donner quelques pistes à expérimenter ;)

Je connais pas mal du D&D, mais ça ne se refuse pas ^^ je t'en remercie :)

Soul-Caribou
Soul-Caribou
Niveau 10
18 juin 2015 à 16:20:15

Hum je me suis un peu embrouillé en lisant ton code sur l'image_angle, en prenant Cible pour une variable alors que c'était le nom de ton objet (d'où l'utilité d'ailleurs d'utiliser une nomenclature pour ses ressources genre obj_nom, etc...).

Mais c'est un peu ce que tu dois faire malgré tout. Car actuellement ta tourelle de soin soigne tous les objets Cibles sans aucune distinction. Du coup quand tu lui dis "vise Cible", ta tourelle va s'aligner sur une instance en particulier parmi les différentes instances de l'objet Cible, et rien ne lui dira à aucun moment de changer.

Il faut plutôt donc que tu lui fasses soigner une instance en particulier (stockée dans une variable et qui changera quand l'instance est soignée à fond) et non l'objet Cible en général.

J'essaierai de faire un test de mon côté ce soir pour voir, mais ce sera en GML (simple)

toucheamonpenis
toucheamonpenis
Niveau 1
18 juin 2015 à 16:48:34

Salut Soul, et bonjour à tous,

je viens vers vous car en ce moment je suis plusieurs tutos pour me lancer dans mon propre top down shooter,
étant assez fan d'isaac,hotline miami et nuclear throne entre autre, et en fait j'essayes de créer un upgrade "Triple shot" , quand je fais un shot normal ça donne a peu prés ça:

quand je fais clic gauche :

instance_create (x,y,obj_bullet)

Sachant que la vitesse de la balle, la direction toward mouse,l'alarme etc..sont dans des variables personnages (il n'y a pas d'arme différente à proprement parlé mais juste des persos différents), en fait j'aimerais le code à suivre pour faire exactement ce que fait ce mec :

https://www.youtube.com/watch?v=2IZiUoxtnR0

Sauf que lui est en drag and drop , et ça pu un peu la facilité et dans ma quête de connaissance du GML j'essayes d'éviter le drag and drop à tout prix, alors je sens que je suis sur la piste avec le lenght_dir et l'image_angle mais ça donne des résultats étranges (plusieurs balles apparaissent mais ne partent pas de mon perso, voir des balles tirés de l'extérieur de la room) , bref un peu d'aide serait pas de refus !

Soul-Caribou
Soul-Caribou
Niveau 10
18 juin 2015 à 17:58:04

Salut!

Ce n'est pas très compliqué pour le coup, dans la vidéo l'équivalent en GML de ce qu'il utilise pour le shotgun c'est :

action_create_object_motion(obj,x,y,speed,direction)

Je ne l'ai jamais utilisé mais ça devrait fonctionner tu n'auras qu'à me dire si tu testes, tu dois normalement pourvoir également utiliser un instance_create basique combiné à un motion_add(dir,speed) (jamais utilisé ce dernier non plus, probablement à ajouter dans le Create Code de tes bullets mais peut être pas adapté pour le triple shot).

Du coup te devras avoir dans ton event Global Left click :

action_create_object_motion(obj_bullet,x,y,10,direction);
action_create_object_motion(obj_bullet,x,y,10,direction+15);
action_create_object_motion(obj_bullet,x,y,10,direction-15);

Bon courage à toi, moi aussi je suis inspiré par Isaac entre autre pour mon projet ^^

PS : d'ailleurs je ne connaissais pas les fonctions, mais tu peux rapidement trouver l'équivalence du D&D en GML sur google ou dans la doc ("game maker instance_create moving code" pour le coup ;) )

Message édité le 18 juin 2015 à 18:01:22 par Soul-Caribou
labascule
labascule
Niveau 5
18 juin 2015 à 18:20:57

Oki merci pour toute les infos, j'essayes ça en rentrant ce soir, et je te tiens au courant :ok: , je vais aussi voir le coup des conversions D&D en GML même si pour le coup la c'est assez rare que je m'inspire directement de D&D.

JIJI_Black
JIJI_Black
Niveau 2
18 juin 2015 à 20:29:22

Salut !

Hum je me suis un peu embrouillé en lisant ton code sur l'image_angle, en prenant Cible pour une variable alors que c'était le nom de ton objet (d'où l'utilité d'ailleurs d'utiliser une nomenclature pour ses ressources genre obj_nom, etc...).

Alors j'ai regarder toute les vidéos de TheErnest570.
J'en ai appris peu au début comme justement la nomenclature, mais après ça ma aussi bien aidé!
Bon pour mon jeu Tower vs Tower je laisserais comme ça, autrement faudra retrouver et changer tout les noms dans les autres instances.

Il faut plutôt donc que tu lui fasses soigner une instance en particulier (stockée dans une variable et qui changera quand l'instance est soignée à fond) et non l'objet Cible en général.

Ok c'est peut être la solution je testerais ça, encore merci

Sinon pour toi Touche, comme cela ça dois répondre a ton souhait.

repeat(3) { tir=instance_create(x,y,obj_bullet) tir.speed = random_range(13,15) tir.direction = image_angle + random_range(-10,10) }

Voila, bonne continuation !

labascule
labascule
Niveau 5
19 juin 2015 à 00:19:08

Ça marche niquel, il est minuit , ça fait 3 heures que je batailles et que le code est bon(faut dire que je suis réveiller depuis 6 heures et que le boulot m'a esquinter), mais cela lançait qu'une balle au lieu de trois, puis l'illumination (du gros débile que je suis) "mon ptit pote, ton obj_bullet est locker sur le curseur, même si tu shoot 15 bullets elles seront toutes sur le même x,y de la mouse :mort: , j'ai supprimé le point_toward_mouse et miracle c'est parfait! :ange:

Merci aussi Jiji,mais ton code inclus un random spread sympa pour le shot gun de par le coté réaliste de la dispersion,mais je voulais vraiment qu'a chaque tir les 2 bullets supplémentaires aient un angle inchangé, mais merci quand même j'en aurais de toute façon besoin lorsque je ferais les tirs ennemis. :ok:

forumpseudo
forumpseudo
Niveau 6
10 juillet 2015 à 16:25:29

Bonjour, voila je suis passé sur la dernière version de game maker (game maker studio) car ma version 8.1 commençait à dater un peu ^^. Mais bien sur comme tous upgrade, il y a des incompatibilités, des choses qui changent. Mes notions de GML ne sont plus à jour, et quand j'apprends que sur la dernière version du GML (celle de GM Studio) ils ont virés certains fonctions, bah je cherche des alternatives, mais là je bloque. Quelqu'un pourrait-il m'expliquer comment faire une popup avec une question et plusieurs choix de réponses possibles, c'est a dire ce que faisait auparavant la fonction show_message_ext(msg,option1,option2,option3) ?
Merci d'avance pour votre aide

Soul-Caribou
Soul-Caribou
Niveau 10
10 juillet 2015 à 19:12:05

La fonction est en effet obsolète et il faut te créer ton propre système de choix de dialogue toi même, c'est dommage en effet mais ce n'est pas si compliqué.

Personnellement mon système marche dans les grandes lignes comme ça :

- J'initialise plusieurs variables globales dans un objet Controller (obj_ctrl_dialogues par exemple) qui regroupe tous mes dialogues et textes en général, sous cette nomenclature "global.idPnJ_dialogX[langue,id_text]", voilà ce que ça veut dire pour moi :

  • global. : pour que ce soit une variable globale.
  • idPNJ : représente le nom du personnage à qui on parlera
  • dialogX : le X représente les potentiels différents dialogues du PNJ : 1,2,3... au choix
  • ensuite pour la partie tableau/arrays (merci chopsueys), j'ai ma variable langue qui est choisie par le joueur.
  • id_text : représente un nombre qui sera attribué à chaque phrase.

Avec par exemple un obj_marchand voilà ce que ça donnerait dans ce tableau de variables :

//Dialogue du Marchand :
global.obj_marchand_dialog1[fr,1] : "Bonjour, vous voulez marchander?" //amorce du dialogue
global.obj_marchand_answer1[fr,1] : "Oui pourquoi pas" //premier choix de réponse
global.obj_marchand_answer1[fr,2] : "Peut être plus tard" //deuxième choix de réponse
global.obj_marchand_dialog1[fr,2] : "Ok, regardez ce que j'ai" //réponse favorable au premier dialogue
global.obj_marchand_dialog1[fr,3] : "N'hésitez pas à revenir" //réponse défavorable au premier dialogue
global.obj_marchand_dialog2[fr,1] : "Oh encore vous? vous voulez marchander?" //amorce du dialogue
global.obj_marchand_answer2[fr,1] : "Oui pourquoi pas" //premier choix de réponse
global.obj_marchand_answer2[fr,2] : "Pas pour le moment." //deuxième choix de réponse
global.obj_marchand_dialog2[fr,2] : "Ok, regardez mes derniers arrivages" //réponse favorable au premier dialogue
global.obj_marchand_dialog2[fr,3] : "A bientôt!" //réponse défavorable au premier dialogue

(avec en doublette de chaque ligne la version "en" à la place de "fr" pour la trad)

De là libre à toi de rajouter des id_text en plus pour plus de réponses, ou d'autres dialogues et sous dialogues.

Ensuite et c'est la qu'il faut coder, mais pour résumer :

  • j'ai un objet parent qui sert à dessiner la boite de dialogue, et les différents dialogues/réponses/textes
  • ces textes sont appelés en deux temps : par des variables locales qui ne sont pas elles créées dans l'objet parent, mais directement dans les objets des pnj, et qui elles mêmes pointent vers les variables globales de notre fichier plus haut.
  • Par exemple pour mon marchand, j'ai un obj_marchand avec tout son fonctionnement spécifique, mais où sont aussi déclarées des variables "dialog1[fr,1]", "answer1[fr,1]", "answer1[fr,2], etc... ces variables renvoies vers les variables "global.obj_marchand_dialog1[fr,1]" associées.
  • Du coup quand l'objet parent dessine l'interface, puis le dialogue en appelant les variables locales (des objets enfants), il dessine au final les textes contenus dans les variables globales créées auparavant. Il suffit ensuite de placer à ta convenance dans la fenêtre les différents textes voir autres éléments (avatars,...)
  • Il suffit ensuite de rajouter à ça dans le système un système de sélection de réponse, avec une variable locale "selectionchoix" par exemple.
  • Cette variable dessinera par exemple en rouge un des textes en fonction de sa valeure : par exemple si selectionchoix est égal à 1, alors l'answer1[global.langue, 1] sera dessiné plus gros et en rouge, et la deuxième réponse plus petit en gris. Si elle vaut 2, ce sera l'inverse.
  • Si tu appuies sur gauche droite, tu changes la valeur de selectionchoix.
  • si tu appuies sur Entrée, cela valide ta réponse et affiche le dialogue suivant voir conclut le dialogue.

J'ai essayé d'être complet mais en te laissant quand même quelques points plus flous à déduire toi même, si tu bloques vraiment n'hésite pas à revenir demander un coup de pouce ;)

Je suis encore un rookie, donc ça reste très probablement optimisable.

forumpseudo
forumpseudo
Niveau 6
10 juillet 2015 à 19:20:10

ok merci, tu m'as apporté ce que je voulais savoir ^^
dommage qu'ils aient supprimés cette fonction ma fois forte utile dans les jeux :snif:
je pense pouvoir me débrouiller merci :merci:

Timorite
Timorite
Niveau 10
25 juillet 2015 à 00:20:53

:salut:

J'aimerais savoir, comment se gèrent les numéros de manettes sous Android dans Gamemaker? Pour l'instant j'ai testé sur deux tablettes gamer (la JXD 7800b et l'Archos Gamepad 1) et il n'y avait que le Joystick 2 qui était reconnu. J'ai aussi testé sur un téléphone Samsung Galaxy et là aussi le Joystick 2 était reconnu, alors que bizarrement aucun joystick n'était branché. J'imagine que le Samsung a un driver de manette qui tourne automatiquement.

Mais donc j'aimerais savoir, est-ce que c'est tout le temps le joystick 2 de Gamemaker qui sera reconnu? Et pour les personnes qui disposent de système où ils peuvent brancher plusieurs manettes (par exemple la Ouya) est-ce que je dois mettre à disposition les joystick 3, 4, ou peut-être 1?

Une dernière petite question, j'ai dû remapper les touches sur Android par rapport à la version PC pour que ça reste logique. Est-ce que ça sera le cas pour toutes les manettes Android ou bien il se peut que ça change de l'un à l'autre?

...J'imagine que le mieux c'est de tout tester au cas par cas selon les machines, mais si par hasard quelqu'un voit un peu comment ça fonctionne ça me ferait gagner beaucoup de temps. :rouge:

labascule
labascule
Niveau 5
09 août 2015 à 18:38:29

Bonjour je viens vous demander de l'aide concernant une erreur sur les dégâts , je m'explique , sur mon top down shooter, le perso tire des projectiles (waow :hap: ) , j'aimerais que ces projectiles fassent x dégâts quand ils touchent un ennemi, donc j'ai testé ceci:

var damage;
damage = bullet.damage = 3;

et dans le collision event(associé au projectile) de la cible :

//collison
with(other) instance_destroy();

{
hp -= other.damage ;

}

Sauf que cette erreur apparait quand collision il y a:

Push :: Execution Error - Variable Get 100006.bullet(100007, -2147483648)
at gml_Object_obj_bullet_CreateEvent_1 (line 2) - damage = bullet.damage = 3

J'ai essayé de regarder les diverses doc fournies sur le net mais j'arrives pas à m'en sortir :( Alors toute solutions serait la bienvenue :ange:

Soul-Caribou
Soul-Caribou
Niveau 10
09 août 2015 à 19:49:54

damage = bullet.damage = 3;

Tu ne peux pas faire des cascades de variables (du moins je ne crois pas)

Déjà cette variable damage, tu l'as bien initialisé dans le Create Event du projectile non?

Auquel cas tu as simplement besoin de dire :

damage = 3;

Le bullet.damage, c'est par exemple quand ta cible est touché par un projectile, tu lui dis :

with (bullet)
{
instance_destroy();
}
hp -= bullet.damage;

le points de vie de la cible diminueront d'un montant égal à la variable damage de bullet.

labascule
labascule
Niveau 5
10 août 2015 à 00:16:09

Salut Caribou , le damage = bullet.damage = 3, je l'ai vu à maintes reprises sur le reddit de GML (ou alors c'est eux qui utilisaient la cascade comme raccourcis du véritable code)j'ai supprimé l'effet de cascade , sinon oui c’était bien dans le create event de bullet concernant la var damage,j'ai utilisé ton morceau de code dans le collison event de la cible mais j'ai la même erreur.

A mon avis tout cela vient du fait que la cible va chercher dans ses propres events concernant le montant du damage, pour palier à ca , j'ai essayer le other.damage (donc pas les damages de la cible mais celle de other,other ici étant le bullet en collision), mais ça marche pas du tout.

Alors j'ai tester avec le "with" que tu proposes ,mais la même erreur apparaît, alors je ne sais pas si "with" permet de chercher les events d'un autre objet comme le permet "other", en tout cas merci d'avoir essayé de m'aider, si t'as d'autres pistes éventuelles je prends. :ok:

Soul-Caribou
Soul-Caribou
Niveau 10
10 août 2015 à 09:20:05

Salut,

J'ai fais quelques tests, pour régler rapidement le problème, utilise plutôt la collision depuis la bullet pour diminuer les hp de "other" (l'ennemi) puis pour détruire la bullet.

Si tu veux voir comment j'ai fais, j'ai upload le projet (j'espère que ça marche première fois que j'exporte un projet) : https://mega.co.nz/#!Sg8hhZQA!9_GR3V3Fig5rOTEELJ7u6VC0CO4oyzKYoUBSw13pADc

Tu y trouveras aussi dans l'event Draw de l'ennemi le code pour lui faire sa barre de vie.

Et oui, le with te permet avec l'objet appelé de lui faire exécuter du code sinon.

labascule
labascule
Niveau 5
10 août 2015 à 22:14:49

Waow , merci beaucoup le caribou ! en relisant ton code,je me disais putain , mais c'est le même code que j'utilisais à par le fait que j'inversais l'instance destroy et le damage , donc forcement la bullet étant détruite , la cible partait en live et ne retrouvait pas combien de dégâts elle devait subir vu que la bullet était détruite AVANT (d'ou l'importance de l'ordre des inputs) , erreur de noob qui m'a fait suer de longues soirées, merci encore! :ok:

JIJI_Black
JIJI_Black
Niveau 2
17 août 2015 à 21:36:31

Bonsoir !

Je n'ai pas réussi a insérer une variable dans mon obj_cible pour ensuite la cibler quand celle ci perd de ses vie et changer de cible une fois celle visé est remplis de ses vie..

La seul chose que j'ai réussi a faire est que la variable compte l'objet qui a été crée mais je ne sais pas ensuite comment faire ma tourelle de soin viser cette variable sur l'objet.

Faudrait-il créer à cette variable une position ? la même position que l'objet crée ? je ne sais pas.

J'ai essayé un genre comme : si la tourelle de feu ( variable compté 1) est a moins de 100 vies elle sera donc visé par ma tourelle de soin, si 100 et que 2 autres tourelles (variable compté 2 et 3) sont a moins de 100 vies elle viserait donc celle possédant le moins de vie, donc 2 serait visé si 50 vie et si 2 à 100 vie, 3 visé si 78 vie etc si d'autres tourelles sont endommagée...

mais juste que là j'ai pas réussi ..
J'ai donc laissé.

Je suis actuellement sur une tourelle de soin de zone clairement plus facile mais ce n'est pas exactement l'effet que je désir, mais si quelqu'un par hasard arrive a trouvé l'astuce de mon problème je suis preneur.

Merci d'avance en espérant que cela ne sois pas trop compliqué :)

labascule
labascule
Niveau 5
17 août 2015 à 22:05:03

Pour ta première partie, sur le fait que lorsque ta tourelle soigne une cible et ne rechange pas de cible une fois celle-ci full life , essayes une alarm

CheckHP = 15 (15 frames ici, soit toutes les 0.25 secondes elle cherchent une cible à soigner si ton jeu run en 60 fps,c'est un exemple évidemment)

alarm [0] = checkHP

c'est un code super basique que jte files n'ayant pas ton code , pour le switch de target en fonction de leurs HP par contre faudra attendre une personne plus compétente :hap: :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware