Commit Graph

46 Commits

Author SHA1 Message Date
Thomas Lavocat
5678bd8c55 niveau/transitions: shader de transition
Entre les niveaux et à la mort il y a maintenant un fondu au noir qui se
met en place pour éviter d'avoir la gerbe sur les mouvements de caméra.
la physique est en pause pendant la transition.
2023-05-11 08:53:46 +02:00
Thomas Lavocat
824295f63c jeu/HUD: début de HUD pour les prouts
Maintenant 3 geauges de prout sont présentes et permettent au joueur de
savoir si il a du pet de dispo ou pas. Le joueur peut accumuler jusqu'à
trois prouts. Le temps de recharge est de 3 secondes par prout. C'est
peut être trop long.

Il faudra probablement bouger du code que j'ai mis dans game au dans le
code de niveau. Mais bon j'y réfléchirai le prochain coup.
2023-05-10 23:05:03 +02:00
Thomas Lavocat
3c6d18f746 princesse/état: copie de l'état entre niveaux
La princesse récupère son état d'un niveau à l'autre. De cette manière,
on ne perd pas les fromages.
2023-05-10 20:53:27 +02:00
Thomas Lavocat
d7c295b994 princesse/contrôles: faciliter le wall jump
Moins de gravité, et plus de distance parcourur pour le kick. Ca permet
de vraiment prendre son temps.
2023-05-08 20:26:03 +02:00
Thomas Lavocat
fc40b9a41a princesse/accroche: laisser le joueur s'en aller
si le joueur décide de s'en aller du mur, ne pas l'en empécher pendant
tout la durée du coyote. C'est pénible sinon.
2023-05-08 20:08:50 +02:00
Thomas Lavocat
a7fec3a450 princesse/prout: gravité progressive
Si la princesse dash vers le haut, alors la gravité va reprendre
progressivement.
2023-05-08 20:08:23 +02:00
Thomas Lavocat
7d7ea8542f princesse/accroche: appuyer contre le mur suffit
Plutôt que d'enfoncer une touche spéciale pour s'accrocher au mur,
utiliser le joystick ainsi que sa direction pour avoir la friction au
mur.

Rajout d'un coyote time permettant d'avoir suffisament d'aisance pour
wall kicker.
2023-05-08 19:26:17 +02:00
Thomas Lavocat
99ae21ed87 niveau: avoir des niveaux indépendants
Il est maintenant possible d'avoir des niveaux indépendants et de
switcher de l'un à l'autre en utilisant une porte. La porte doit
indiquer le nom du niveau suivant et ensuite dans game.gd un mapping
statique permet de passer d'un niveau à l'autre.

Les limitations actuelles et la todo liste:

- La princesse spawn toujours au même endroit, elle devrait spawner par
  la porte qui l'a fait venir et bien sur dans la carte pas dans le vide
  à côté.
- On perds l'état du niveau quand on meurt, il faut que ça change dans
  le futur, c'est pas préssé ceci dit.
- Le niveau devrait s'inscire automatiquement à l'événement de mort de
  la princesse pour pas oublier de le faire à chaque fois.

En tout cas, ce chantier va permettre de travailler des niveaux
indépendament les uns des autres et paralléliser si on veut être
plusieurs à tweaker en parallèle.
2023-05-02 21:41:07 +02:00
Thomas Lavocat
6762c17a03 game: Le niveau jeu le rechargement
Plutôt que la princesse, c'est leu jeu qui s'occupe de recharger la
scène si la princesse est morte.
2023-05-02 21:41:07 +02:00
Thomas Lavocat
a82237e0dd princesse: correction des warnings
Encore une fois, j'en ai laissé trainer. Vilain Thomas!
2023-05-01 13:59:12 +02:00
Thomas Lavocat
5288ca99e4 princesse/mort: gestion avancée de la mort
Lorsque la princesse meurt, une animation de mort est lancée qui la fait
disparaitre dans un tourbillon de la mort. A la fin du tourbillon de la
mort, un signal est renvoyé à la princesse pour que la scene redémarre.

Basique mais fait le taff!
2023-05-01 12:55:23 +02:00
Thomas Lavocat
c013f1f8ad princesse/prout: correction du dash
Le dash accroché au mur est maintenant fonctionnel
Le dash par défaut fait avancer dans la précédente direction du
personnage si le joueur ne donne pas de commande et sinon utilise la
commande du joueur pour choisir la direction
Le dash en diagonnale est maintenant cohérent avec le dash sur un seul
axe.
2023-05-01 12:55:23 +02:00
Thomas Lavocat
febf62053e princesse/accroche: ne pas marcher si accroché
Lorsque la princesse est accrochée au mur, ne pas lui permettre de
partir de son accroche tant que le joueur maintient le bouton d'accroche
au mur. De cette manière, le joueur peut prendre le temps d'orienter son
stick comme il veut avant de sauter ou dasher.
2023-05-01 12:55:23 +02:00
Thomas Lavocat
f6e903b7d5 princesse/prout: relier le fromage au dash
Maintenant, la princesse à besoin de manger du fromage pour récupérer un
prout dans le compteur de prout pour lui permettre de dasher. Il manque
le fait d'avoir un timer qui délaye l'ajout du prout au compteur de
prout et le HUD pour savoir où on en est de son nombre de prouts
réstants.
2023-04-30 20:27:06 +02:00
Thomas Lavocat
e963ececf9 princesse/comamndes: ajout du dash
La princesse peut dasher à volonté pour l'instant. Il reste à relier ça
avec la consomation de fromage pour les pêts.
2023-04-30 20:21:34 +02:00
Thomas Lavocat
3ffbe0c1d6 princesse/fromage: réaction au fromage, vibration
Déclencher un feedback à base de vibration quand la princesse prends un
fromage.
2023-04-30 19:23:50 +02:00
Thomas Lavocat
d52a6d2126 princesse: correction de warnings 2023-04-30 19:23:31 +02:00
Thomas Lavocat
66383d3659 items/fromages: la princesse peut manger un fromage
En vrai, pour l'instant voilà ce qui est fait:

- le fromage existe et est plaçable sur le niveau à convenance. Autant
  qu'on veut.
- le fromage est une entité autonome dans ses animations et c'est lui
  qui va enoyer un signal à la princesse quand elle rentre en collision
  avec lui.

 Reste à mettre en place:
 - Un timer pour faire réaparaitre le fromage
 - Un affichager de jauge à prout pour la princesse
2023-04-30 18:20:51 +02:00
Thomas Lavocat
338da55169 princesse/collision: correction du bug pic+mur
Dans le bug du pic+mur, si princesse était en colluision avec un mur et
des pics à la fois et toujours en train de marcher en direction du mur
pour forcer la collision avec celui ci, alors les pics n'étaient pas
traités car en ne récupérant que la dernière collision au lieu de toutes
les collisions c'était au petit bonheur la chance.

Maintenant le petit bonheur n'est plus là, la chance est partie et ça
marche à chaque fois!
2023-04-30 17:23:11 +02:00
Thomas Lavocat
89447a6541 princesse/réglage: amélioration du feeling
marche moins rapide
saut un poil plus haut
gravité moins présente

Le tout donne une meilleure maitrise du personnage.
2023-04-30 12:14:24 +02:00
Thomas Lavocat
fb4599d197 princess/marche+kick: réinitialisation correct des l'état
Certaines variables d'état nécessaire au bon déroulement des
décélérations et de la marche n'étaient pas remises au bon état
correctement en fin de marche. Ce commit essaye d'addresser ce soucis.
2023-04-30 12:09:50 +02:00
Thomas Lavocat
04ee7232dc princesse/misc: suppression d'un debug
Tout simplement
2023-04-29 22:28:29 +02:00
Thomas Lavocat
ab71180eab princesse/coyote: amélioration de la détection
Si la princesse touchait la plateforme pour moi de la durée du buffer,
il se trouvait que ça buggait. A la place de regarder uniquement le plus
ancien élément du buffer de coyote, je fais un OU logique entre tous ses
éléments, comme ça si on a éffleuré une plateforme même pour une frame
ça compte.
2023-04-29 22:27:00 +02:00
Thomas Lavocat
a5eb31e426 princesse: meilleur feeling sur le kick
elle monte un peu plus haut, c'est plus agréable. et ça permet de
rebondir entre deux murs
2023-04-29 22:26:22 +02:00
Thomas Lavocat
976059c134 princesse: kick mural activé
La princesse peut kicker depuis le mur! Sans pour autant que ça lui
donne la capacité de remonter au mur, en kickant elle tombe
progressivement vers le bas. Le joueur ne peut rien y faire.
2023-04-29 20:26:32 +02:00
Thomas Lavocat
4411cf825e princesse: réorganisation codale
Pour y voir plus clair maintenant que la physique se porte bien dans ce
jeu vidéo, j'ai fait du ménage et organisé les fonctions de la
princesse. Ca devrait être plus facile de rajouter du fromage et des
sauts muraux qui demandent un peu plus d'intrication dans les états.
2023-04-29 18:51:49 +02:00
Thomas Lavocat
80fd4f4758 princesse: réorganuisation du code
Externalisation des fonctions pour gérer les animations et leur
orientation.
2023-04-29 18:32:13 +02:00
Thomas Lavocat
b47ce2316f freinage: le personnage ne glisse plus
Dans un cas particulier où un saut emmenant la tête du personnage sur un
pan incliné lui donnait une vélocité en x différente de zéro et
qu'aucune command du joueur n'était envoyé via le controleur alors, la
princesse glissait à l'infi et l'au delà (surement même un peu plus). Il
en va donc de sa survie et de la santé mentale du joueur de limiter ces
comportements ératiques et qui semblent tout bien d'être une
fonctionalité pour certains. Je m'égare, je m'égare! En attendant
l'écureil, la princesse freinera. voilà.
2023-04-29 17:28:32 +02:00
Thomas Lavocat
c23d9d3914 coyote: rajout du coyote time pout le saut
le joueur peut sauter pendant quelques frames après avoir quitté le sol.
ça rend le jeu beaucoup plus smooth
2023-04-29 17:06:53 +02:00
Thomas Lavocat
5480209285 saut: permettre le saut trop anticipé
Si le joueur appuyer sur la touche de saut un peu avant de toucher le
sol, alors le personnage sautera au moment d'avoir touché le sol. ça
permet au joueur de ne pas avoir totalement besoin d'être super précis
sur la commande de saut pour pourtant faire bouger le personnage.
Le mécanisme utilise un RayCast sous les pieds de la princesse pour
savoir où se trouve le sol.
Il restera à tuner cette variable dans le futur.
2023-04-29 15:57:46 +02:00
Thomas Lavocat
e71122fa9f princesse: ménage
nettoyage de quelques restes du passé qui ne sont plus utilses
aujourd'hui
2023-04-29 15:45:18 +02:00
Thomas Lavocat
c96994ee88 coleaumur: détecte la plateforme avec un RayCast
Uniquement se reposer sur is_on_wall() ne fonctionne pas, car
move_and_slide() parfois ne nous indique pas qu'une collision avec
un mur a eu lieu. ça doit être à cause d'un pixel de décalage ou
un truc du genre.
Pour palier au soucis, j'utilise deux RayCast, un à gauche et un
à droite. si ils sont trigger, alors ça veut dire qu'un mur est dans
le coin. Ils sont uniquement sensibles aux plateformes.
Voilà voilà, maintenant s'accrocher au mur ne nécessite plus de
maintenir la touche de direction dans le bon sens.
2023-04-29 15:43:02 +02:00
Thomas Lavocat
66293d6bb2 déplacement: décélération en changement de direction
Le personnage doit perdre en vélocité sur l'axe précédant lorsque
le jour demande de changer de direction pour avoir un effet smooth
de déplacement.

La stratégie choisie consite à détecter qu'un changement de direction
est en cours puis de remettre l'index d'accélération à son état
d'initialisation et de laisser accélérer le personnage classiquement.

Sauf que lorsque l'on va calculer sa vitesse, l'on va rajouter la
vélocité déjà présente ce qui aura pour effet de smoother tout ça.
2023-04-29 14:59:07 +02:00
Thomas Lavocat
07369a7ebf typage: bon typage de retour pour les déplacements
Une erreur d'attention faisaient passer des chiens pour
des chats. Et on ne mélange pas les torchons avec des serviettes
sinon les poulets ne seront pas bien gardés.
J'en met ma main à couper le feu que c'est la dernière fois qu'on
my prendra, jusqu'à la suivant bien entendu.
En attendant, ce fix fixe le bug.
bisous
2023-04-29 14:14:49 +02:00
Thomas Lavocat
c8f981f2b6 ménage: suppression de variables inutiles
Et inutilisables! que voici que voilà!
2023-04-29 14:14:20 +02:00
Thomas Lavocat
8948aa1586 physique: appliquer la graivté en pente descendante
Dans la version précédente, lorsque la princesse déscendait
un pente, il se trouvait que la graivté ne la faisait pas coller
au sol correctement.
Pour corriger le soucis, il faut appliquer la gravité en fonction
de ce que décide le joueur car on a besoin de désactiver la gravité
pour permettre au joueur de remonter la pente, mais l'activer à fond
and il descend la pente pour lui permettre de garde les pieds au sol.
2023-04-29 14:12:31 +02:00
Thomas Lavocat
cb5c5ad728 accroche: s'accrocher requiert une action
Avant la princesse se colait au mur quoi qu'il arrive. Ce n'était pas
très agréable dans le gameplay. La raison principale, un soudain et
régulier changement de sprite. Plutôt que de tweaker ça, j'ai décidé
de choisir l'approche façon céleste où il faut enfoncer une touche
pour s'accrocher au mur.

La touche en question c'est control sur clavier
Et l1/l2 sur la manette
2023-04-29 13:52:29 +02:00
Thomas Lavocat
6bf72f6ff0 niveau: les pics tuent
Lorsque la princesse rentre en collision avec un pic, elle meurt et
recommence au début du jeu.
2023-04-28 23:40:29 +02:00
Thomas Lavocat
6ede5ad2ac contrôles: ajouter le support de la manette
La manette de xbox peut contrôler la princesse.

Croix directionnelle et joystick gauche pour les déplacements
A pour sauter.

La suite après!
2023-04-28 21:04:34 +02:00
Thomas Lavocat
1b8e1c30f1 déplacement: se coller au mur
lorsque le joueur presse la touche de déplacement et que le personnage
est contre le mur, alors, le personnage tombe moins vite et l'animation
de 'se coller au mur' est jouée.
2023-04-28 21:04:34 +02:00
Thomas Lavocat
e309410753 marcher: décélération air/sol dissociée
La princesse peut maintenant décélérer correctement. Et elle possède un
moyen de décélérer à des vitesses différentes dans l'air que sur le sol.
Il restera à tuner correctement cette nouvelle variable.

Prochaine étape: coyote time et wall stick + wall kick

banzaï!
2023-04-23 20:45:28 +02:00
Thomas Lavocat
f9bbccca0a saut: amélioration du feeling en se tapant la tête au plafond
Plutôt que d'annuler le saut immédiatement, juste empécher le refill.
De cette manière lorsque la princesse se tape la tête au plafond, elle
garde un peu d'apesanteur sans pour autant rester coincé là haut.
2023-04-23 19:30:49 +02:00
Thomas Lavocat
e38d18b5cd saut: la princesse peut sauter
Si le joueur maintient la barre espace la princesse saute plus haut.
Il faudra tuner les variables.

Prochaine étape: modifier la décélération dans l'air.
2023-04-23 09:13:37 +02:00
Thomas Lavocat
12b3414abb gravité: appliquée de la même manière que la marche
Nombre fixe de frames pour l'accélération. Il reste à appliquer le saut
et on à la base.
2023-04-23 07:25:29 +02:00
Thomas Lavocat
3f3666d2a5 marcher: nombre fixe de frames pour marcher
Reproductible et à pas fixe. Toujours le même temps pour accélérer et
décélérer. Si c'est pas beau ça!
2023-04-23 07:25:29 +02:00
Thomas Lavocat
17269c4256 jeu: le début de la collision!
Le jeu contient une princesse qui utilise la physique basique de Godot.
A remplacer ultérieurement car non réellement satisfaisant. Le but va
être de porter dans les prochaines contributions le code de microstudio.
2023-04-13 17:22:41 +02:00