Salut à tous, j’ai une grosse question, je ne sais pas si c’est réalisable, je crée en ce moment un petit jeu de Tank à partir du tuto mais que j’améliore pour donner un “vrai” jeu.
Seulement un problème se pose à moi, j’ai un tank ennemi et je souhaite (entre autres) qu’il tourne son viseur un peu dans tous les sens et qu’il tire de temps en temps des balles quand le Tank du joueur est possible à toucher (pas derrière un mur ou autre). Enfaite je souhaite que les tanks ennemis réagissent un peu de la même manière que dans wii play où l’on vois l’ennemi tourner son canon et tirer de temps en temps.
C’est super si c’est possible, je n’ai de ma part aucune idée de comment raisonner pour réaliser cet objectif…
Pour info sur moi, je suis en classe de première S avec 15 de moyenne et je souhaite devenir ingénieur en développement informatique, je suis tombé sur GDevelop par hasard en essayant de trouver une voie simple pour créer des petits jeux et je trouve GDevelop vraiment génial !
Encore une chose, si ce projet est un peu complexe, mais que quelqu’un veut bien passer un peu de temps avec moi dessus, c’est génial !
Merci et à bientôt !
Salut,
Tu peux imaginer tirer des “projectiles invisibles” dirigés vers le joueur : s’ils entrent en collision avec un obstacle, tu les détruis. Comme ça, dès que un “projectile” invisible rencontre un joueur, cela veut dire que le tank peut “voir” le joueur.
Ouais, des projectiles ultra-rapides qui forment enfaite une droite c’est ça?
Et sinon c’est possible de créer un programme qui permette de faire pivoter le canon du tank aléatoirement et que quand il se pose sur le joueur il tire ?
J’ai un autre problème, j’ai codé comme cela :
J’ai 5 tanks “Enemy”, un seul tire, lorsque je l’élimine le suivant se met à tirer et ainsi de suite, que dois-je faire pour que l’action s’applique à tous les tanks “Enemy” ?
Merci Beaucoup !
En théorie, les actions s’appliquent à tous les objets concernés par les conditions (qui les valident).
Par contre, une expression ne peut retourner qu’un seul résultat (par exemple la position du canon d’un des char) donc il faut dans ce cas traiter indépendamment chacun des chars : en utilisant un événement “Pour chaque…”.
J’ai fais ça en pensant que ça fonctionnerai :
Seulement toujours pas…
Je dois créer 5 objets différents pour les 5 chars ???
Il faut faire attention : GDevelop traite le 1er objet, teste le chrono (puisque c’est la condition), crée le projectile puis remet le chrono à zéro. Ensuite, GDevelop traite le 2ème objet, teste le chrono : oh, il a été remis à zéro, donc passe le reste des objets.
Il faut que tu mettes la condition dans un événement et l’événement “Pour chaque” (avec les actions) en sous-événement de ce premier événement.
Ok, ça c’est bon, merci beaucoup !!! Maintenant j’ai 2 questions … Je vous accable avec toute mes questions…
Bon première question :
Lorsque les Tanks tirent, le projectile les fais légèrement reculer, au début je trouvais cela pas trop mal, mais maintenant c’est primordial que j’enlève cette option, seulement j’ai modifié dans tous les sens l’automatisme de physique des tanks et des projectiles, impossible d’enlever cet effet, seule solution cocher “objet statique” mais quand il se déplace il traverse les murs -_-…
Deuxième question :
Pour le projectile “invisible” pour choisir quand l’ennemi tire, je crée un objet dans lequel je ne met aucune image ?
Maintenant je peut aussi rajouter des intervalles de temps au lieux de dire “chronomètre supérieur à 3sec” je ne pourrais pas dire “chronomètre entre 3 et 6sec” et que l’ordinateur choisisse une durée aléatoire ?
En tout cas merci, vous m’avez bien aidé depuis la début c’est super !!!
Je ne pense pas que l’automatisme physique soit adapté dans ton cas : utilise plutôt les forces classiques (dans Tous les objets) et l’action Écarter un objet d’un autre quand il y a une collision.
Pour la deuxième question, mets quand même une image (par exemple de 3x3 pixels) pour que ton sprite puisse avoir une taille (sinon, pas de collision testable) puis masque le.
Ok merci, du coup j’annule tous les automatismes et refais tout en conditions/actions…
Et juste on peut dans une condition mettre plusieurs objets ? Exemple : Tank et Enemy sont en collision avec mur (et mur2) ??
Encore merci !!!
Utilises les groupes pour cela : tu crées un groupe “Murs” qui contient tous les objets que tu veux considérer comme des murs, puis de utiliser ce groupe des les conditions/actions à la place de l’objet.
(Pour créer un groupe, c’est dans l’éditeur d’objets, partie droite de GDevelop)
Ok, super merci, ça marche nickel c’est cool !
Donc pour mon projectile transparent je ne sais pas comment faire, j’ai bien mon objet de 3x3 pixels transparent, seulement j’ai essayé dans tous les sens, impossible de faire en sorte que l’ennemi ne tire que quand il me “voit”.
Bonjour, j’ai plusieurs problème:
ont me dit que une nouvelle version et mis en ligne et pour la télécharger il faut allé sur ce lien compilgames.net/indexFR.php
mais c’est la page d’aceuil du site et il y a aucun lien directe avec la version de mis a jour.
ensuite quand je veux faire un aperçus d’un jeux (obligatoirement sur le web ) l’ecran et noir (-_-)… je fais sur mozzila, internet explorer rien ne marche.
merci d’avance pour votre aide .
La version mise à jour se trouve en bas de la page, section “Téléchargement”.
Sinon, pour ton autre problème, crée un sujet sur le forum pour qu’on puisse en reparler (et envoie nous ton projet pour que l’on puisse tester).
Victor tu peut m’aider?
Oui,
maintenant que tes tanks tirent des objets “invisibles”. Il faut que tu testes la collision entre un objet invisible et le personnage. Si il y a collision, cela signifie que l’un de tes tanks a vu le joueur.
Après, se pose la question de savoir quel tank a vu ton joueur. Il faut ici trouver un moyen d’associer les “boulets” invisibles des tanks avec leur tank respectif : pour cela, il y a l’automatisme “Association d’objet”. En gros, quand tu crées ton objet invisible (dans le Pour chaque Tank), tu rajoute une action qui associe cet objet au tank (qui vient de le lancer donc). Puis, dans l’événement qui teste la collision entre un objet et le joueur, tu ajoutes la condition permettant de considérer uniquement le tank associé au “boulet” qui a touché le joueur.
Merci Juste excuse-moi, c’est quoi le nom exact de l’automatisme, j’en trouve plusieurs et je ne sais lequel prendre…
Merci
En fait, il faut juste activer l’extension “Association d’objets”, ce n’est pas un automatisme/objet, c’est juste juste extension qui fournit quelques actions/conditions.
Super, c’est génial merci infiniment, cette aide m’est très précieuse !!!
Bon je me sent un peut mal à force à poser mille et une questions …
Mais en même temps sinon je m’en sort pas… Tu m’excusera ?
Voilà :
Ça fonctionne mais je remarque que si je me place entre 2 ennemis qui me voient, un seul me tire dessus, c’est normal ? Je peut modifier quelque chose pour que les 2 puissent tirer ?
Et j’ai une autre piti problème, j’avais jusque la des balles rondes, de 10x10 maintenant j’en ai crée une de 10x15, seulement je n’ai pas trouvé comment l’orienter vers la direction vers laquelle elle vas… Tu pourrait me l’expliquer ?
Merci infiniment !!!
Je crois que tu as pas vu mon message alors j’en met un autre pour faire remonter le sujet