Tel une brebis égaré

J’ai corrigé le bug avec les actions qui donnent une force avec un angle. Normalement, cela devrait maintenant bien fonctionner.

http://www.levasseursoftware.net/down/Game%20Develop/PhysicsAutomatismFixed.zip
Télécharge ce fichier et met son contenu dans le dossier C:\Program Files (x86)\Compil Games\Game Develop\Extensions .

Impossible de l’extraire et l’ajouté au fichier extension car accès refusé :cry:

J’en suis persuadé, lorsque j’ajoute ou supprime un objet de ma scène, le comportement de mon objet sumo est différent. J’ai supprimé les deux bols de riz situé sur la plateforme supérieur et maintenant mon sumo avance et recule correctement…C’est vraiment très étrange. Avant de passer à la suite, je dois absolument boucler cette étape lié au déplacement de mon personnage.

Normal, faut extraire qq part puis les copier dans le dossier…

Ok parfait! Ça fonctionne mieux, merci Victor!

Pour moi ça marchait bien avec une longueur négative, mais vu comme ça je vais refaire avec des changement d’angles.

Merci à Victor.

Alors puisque maintenant mon personnage gambade gaiement de droite à gauche sans réelle soucis il est temps de se pencher plus en détails sur le saut.
En suivant les conseils de Neo90 j’ai mis en place les évènements suivants :

  • Au lancement de la scène – Mettre le chronomètre “saut” à 0
  • Si “Up” est appuyé et que chronomètre “saut” est supérieur à 0.5s alors Appliquer à l’objet sumo une force d’angle de 270 degré de force 100 puis remettre chronomètre “saut” à 0.

La première question que je me pose est : Faut-il au préalable définir “Saut” telle une variable de valeur initial 0 ? seconde question, avec les évènements mis en place, saut n’est aucunement limité, c’est à dire qu’aussi longtemps que mon doigt restera sur Up l’objet sumo se dirigera vers le haut. Comment obliger l’objet à atteindre une position en Y maximum? De même comment empêcher mon sumo, une fois dans les airs de se prendre pour un ninja et de marcher dans l’air, il faudrait que le saut soit plus définis!000

Bon j’avoue être perdu, j’ai fait plusieurs essaies en jonglant avec le chronomètre, les forces d’angles etc…Mais rien n’y fait je n,ai pas réussi à obtenir quelque chose de fluide et correct. Je vous poste ci-joint les éléments que j’ai mis en place pour l’action de saut du personnage :

Malheureusement j’obtiens avec ces évènements un résultat, qui est le suivant :

lorsque j’appuie sur Up mon objet sumo effectue effectivement un mouvement d’angle de 270 degré néanmoins même si je relâche la touche Up il continue son ascension jusqu’à disparaître de l’écran. Si j’interromps l’action en appuyant sur Right, mon personnage avance, comme vous pouvez le voir, dans le vide, comme si tout à coup une plateforme imaginaire se créait sous ses pieds. Comment vais-je pouvoir gérer complétement mes déplacements, qu’ils soient fluides…Je ne recherche pas quelque chose de poussé un déplacement type super mario est précisément ce que j’ai en tête pour l’occasion. Si vous pourriez éclairer ma lanterne :blush:

Pour ton sumo, va dans les propriété de l’automatisme Moteur physique et active “Empecher la rotation” (en fait, le masque de collision du moteur physique tourne sans que tu ne vois de changement au niveau des graphismes de ton jeu).

Essaie de baisser l’intensité de la force qui le fait monter.
Aussi, as-tu défini la gravité de ta scène ? Si ce n’est pas le cas, édite l’automatisme Moteur physique d’un des objets de la scène (peu importe, la gravité est commune à tous les objets) et modifie la section “coordonnées du vecteur de gravité”. ( 0;9 devrait aller pour faire une gravité vers le bas).

Il n’y rien faire au préalable pour le chrono “saut”.

en revanche plus la durée du chrono est long, plus le temps en les 2 saut est important
(1s me semble long, c’est pour ça que j’ai 0.5, mais il faut voir, peu être une 1s c’est mieux).

Tu peux éventuellement créer une variable à l’objet “sumo” pour l’empêcher de faire d’autre saut quand il est déjà en saut.

jumping=0 à l’objet “sumo” (initialement)

  • Si “Up” est appuyé et que chronomètre “saut” est supérieur à 0.5set que jumping=0

    = alors Appliquer à l’objet sumo une force d’angle de 270 degré de force 100(+/-) puis mettre jumping=1 et remettre chronomètre “saut” = 0.

quand “sumo” est en collision avec le sol (ou test de position, au choix ) = alors remettre jumping = 0

ensuit il faut voir la densité de la masse de l’objet dans le moteur physique (1 c’est bien, voir +/- ).

Victor à raison il faut paramètrer la gravité comme il le dit 0.9 c’est le mieux…

0;9 (pas 0.9)

Oups, oui pardon…

il faut que je me montre plus attentif quand j’écris mes messages :unamused:

Merci les gars! J’essaie ça ce soir, dès que je rentre et je vous tiens au courant!

Comme conseillé j’ai revu mes évènements et j’en suis donc à :

Dans les paramètre physique la gravité est à 0;9, la densité de masse à 1, rotation empêché est actif. Néanmoins mon problème demeure, dans le sens ou lorsque je clic up, le saut n’est aucunement limité et tant que mon doigt est sur Up, l’objet sumo va monter monter monter…Le chronomètre ne fonctionne donc pas si je comprends bien? Ai-je fais une erreur?

Je viens de constater un autre problème par rapport à ma scène :

j’ai ouvert le débug, et je me suis rendu compte que dès que je lance mon test mon chronomètre de saut ne reste pas a 0 comme demandé en début de scène en fait cette valeur ne cesse d’augmenter et à l’heure ou je vous parle elle est a 90secondes. Je ne comprends vraiment pas, ma première condition est qu’au lancement de la scène, le chronomètre saut soit remis à zéro. Hors si j’en crois le débug ce n’est pas du tout ce qu’il ce passe…Mes efforts sont vains, voila qui ne fait pas beaucoup de bien au moral et à la motivation :cry:

J’ai ouvert par la même occasion l’exemple de projet basic platformer espérant que cela pourrait m’aider mais je me suis rendu compte qu’il réside bon nombres de bugs dans l’exemple alors qu’est ce qui est utilisable et qu,est ce qui ne l’est pas…

L’exemple platformer n’utilise pas le moteur physique (d’où sa difficulté à fonctionner correctement).

Sinon, il faudrait mieux utiliser une variable au lieu d’un chronomètre avec par exemple :

[code]CONDITION : Up est appuyé ET La variable (de scène) UpAppuye vaut =0
ACTIONS : Faire le saut, Mettre =1 à la variable (de scène) UpAppuye (pas d’accent dans les noms de variable)

CONDITION : Up est appuyé (INVERSE)
Faire =0 à la variable (de scène) UpAppuye[/code]

Comme ça, dès que le joueur appuie sur Up, la variable UpAppuye passe à 1. Et, comme tu l’as remarqué, le saut pourra se produire que si on appuie sur Up et si la variable UpAppuye vaut bien 0 : l’événement ne pourra plus s’exécuter après tant que l’on maintient la touche (le variable est remise à 0 lorsque Up n’est plus appuyé).

Je vois que ton chrono est à 0.1s c’est très court (essaie 1 ou 0.9 +/-).

Sinon effectivement créer une variable à la scène pour “up” c’est bien aussi et ça évite les répétitions de sauts.

J’ai vu qu’on pouvait créer une variable initial pour les objets mais peut-on en faire de même pour la scène? Ou alors j’ai juste à faire dans conditions – Variable – Variable de la scène – Donner le nom “UpAppuye” – valeur 0 – signe = et le tour est joué? Il ne faut la définir nullement au préalable?

Edit : Ça fonctionne, encore une fois même constat j’ai modifié un élément de ma scène et comme par magie le saut fonctionne…J’ai peur que cela entraîne des complications dans la suite de l’élaboration de mon lvl design :S

Qu’est-ce que tu as modifié pour que ca marche ? c’est ça le plus important à savoir…

Pour créer une variable à la scène,
tu cliques droite sur le nom de la scène dans la liste de gauche(gestionnaire de projets),
et tu fais “modifier les variables initiales”, en lui donnant sa valeur initial.

Et bien en fait c’est assez étrange parce que je n’avais pas spécifié une variable UpAppuye pour la scène au départ mais j’ai tout de même annoncé la variable dans mes évènements et ça fonctionne. La j’ai placé dans scène une variable et pas de changement. Par contre si j’appuie a répétition sur up avant que mon sumo touche le sol et bien il s’envole telle une fusée XD…J’ai pensé énoncé un évènement mettant en corrélation L’objet sumo et l’objet plateforme du type si sumo collision avec plateforme remettre variable a 0 sauf que dans la situation que j’énonce plus haut, le sumo ne touche pas le sol donc pas l’objet plateforme. Comprenez-vous?