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édenteDernière révisionLes deux révisions suivantes | ||
dindomoteur_creation_du_joueur [2022/03/27 13:14] – Simon Deplat | dindomoteur_creation_du_joueur [2022/03/27 14:25] – Simon Deplat | ||
---|---|---|---|
Ligne 476: | Ligne 476: | ||
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 493: | ||
[...] | [...] | ||
+ | # 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 533: | ||
extends KinematicBody2D | extends KinematicBody2D | ||
- | var _typeEntree = "manette" | + | var _typeEntree = "clavier" |
var _zoneMorte = 0.3 | var _zoneMorte = 0.3 | ||
Ligne 572: | Ligne 592: | ||
# 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 670: | ||
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 671: | Ligne 694: | ||
{{ :: | {{ :: | ||
- | Je créé par ailleurs **une copie autonome de ce //Joueur// dans le dossier // | + | 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. |
+ | |||
+ | Je créé par ailleurs **une copie autonome de ce //Joueur// dans le dossier // | ||
{{tag> | {{tag> |
dindomoteur_creation_du_joueur.txt · Dernière modification : 2022/03/27 19:24 de Simon Deplat