dindomoteur_creation_du_joueur
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dindomoteur_creation_du_joueur [2022/03/27 13:17] – Simon Deplat | dindomoteur_creation_du_joueur [2026/02/25 23:55] (Version actuelle) – [Notes de fin] Labomedia | ||
|---|---|---|---|
| Ligne 64: | Ligne 64: | ||
| ====Implémentation de la gravité==== | ====Implémentation de la gravité==== | ||
| + | |||
| + | **[ NOTE ] : Comme discuté [[https:// | ||
| Le joueur aura donc une masse et sera affecté par la gravité : | Le joueur aura donc une masse et sera affecté par la gravité : | ||
| Ligne 476: | Ligne 478: | ||
| J'ai activé **la //lecture automatique au chargement// | J'ai activé **la //lecture automatique au chargement// | ||
| - | J'ai dû rajouter un nœud // | + | **J'ai dû rajouter un nœud // |
| + | |||
| + | Ma première idée était d' | ||
| + | |||
| + | À la place, j'ai mis un // | ||
| + | |||
| + | Cependant, cela pose le problème inverse lorsque que le personnage passe une plate-forme à sens unique en sautant. Alors qu'il est sensé être en saut, le // | ||
| Le tout est ensuite appelé au sein d'une fonction dédiée : | Le tout est ensuite appelé au sein d'une fonction dédiée : | ||
| Ligne 487: | Ligne 495: | ||
| [...] | [...] | ||
| + | # Appui sur le bouton de saut | ||
| + | func entreeSaut(): | ||
| + | # Mécanisme de saut | ||
| + | if is_on_floor(): | ||
| + | if not $RayCast2D.enabled: | ||
| + | $RayCast2D.set_enabled( true ) | ||
| + | if Input.is_action_just_pressed(" | ||
| + | _velocite.y -= _forceSaut | ||
| + | _saute = true | ||
| + | $RayCast2D.set_enabled( false ) | ||
| + | |||
| + | |||
| + | [...] | ||
| # Animation du personnage : | # Animation du personnage : | ||
| func animer(): | func animer(): | ||
| # Vérifier si le personnage est au sol : | # Vérifier si le personnage est au sol : | ||
| - | if $RayCast2D.is_colliding(): | + | if $RayCast2D.enabled: |
| - | # S'il bouge | + | if $RayCast2D.is_colliding(): |
| - | if _velocite.x != 0: | + | # S'il bouge |
| - | $AnimationPlayer.play(" | + | if _velocite.x != 0: |
| - | # Sinon | + | $AnimationPlayer.play(" |
| - | else: | + | # Sinon |
| - | $AnimationPlayer.play(" | + | else: |
| + | $AnimationPlayer.play(" | ||
| else: | else: | ||
| $AnimationPlayer.play(" | $AnimationPlayer.play(" | ||
| Ligne 513: | Ligne 535: | ||
| extends KinematicBody2D | extends KinematicBody2D | ||
| - | var _typeEntree = "manette" | + | var _typeEntree = "clavier" |
| var _zoneMorte = 0.3 | var _zoneMorte = 0.3 | ||
| Ligne 572: | Ligne 594: | ||
| # Mécanisme de saut | # Mécanisme de saut | ||
| if is_on_floor(): | if is_on_floor(): | ||
| + | if not $RayCast2D.enabled: | ||
| + | $RayCast2D.set_enabled( true ) | ||
| if Input.is_action_just_pressed(" | if Input.is_action_just_pressed(" | ||
| _velocite.y -= _forceSaut | _velocite.y -= _forceSaut | ||
| _saute = true | _saute = true | ||
| + | $RayCast2D.set_enabled( false ) | ||
| # Gestion de l' | # Gestion de l' | ||
| Ligne 647: | Ligne 672: | ||
| func animer(): | func animer(): | ||
| # Vérifier si le personnage est au sol : | # Vérifier si le personnage est au sol : | ||
| - | if $RayCast2D.is_colliding(): | + | if $RayCast2D.enabled: |
| - | # S'il bouge | + | if $RayCast2D.is_colliding(): |
| - | if _velocite.x != 0: | + | # S'il bouge |
| - | $AnimationPlayer.play(" | + | if _velocite.x != 0: |
| - | # Sinon | + | $AnimationPlayer.play(" |
| - | else: | + | # Sinon |
| - | $AnimationPlayer.play(" | + | else: |
| + | $AnimationPlayer.play(" | ||
| else: | else: | ||
| $AnimationPlayer.play(" | $AnimationPlayer.play(" | ||
| - | |||
| </ | </ | ||
| Ligne 666: | Ligne 691: | ||
| Il pourra servir de base pour des jeux n' | Il pourra servir de base pour des jeux n' | ||
| - | |||
| - | Au cas où, voici à quoi ressemble ma scène dans l' | ||
| - | |||
| - | {{ :: | ||
| Notez que je n'ai pas renommé les noeuds (sauf le parent) pour que vous les identifiiez plus facilement ici, mais qu'il est tout-de-même conseillé de les renommer lors de ses projets propres. | Notez que je n'ai pas renommé les noeuds (sauf le parent) pour que vous les identifiiez plus facilement ici, mais qu'il est tout-de-même conseillé de les renommer lors de ses projets propres. | ||
dindomoteur_creation_du_joueur.1648387044.txt.gz · Dernière modification : de Simon Deplat
