mirror of
https://forge.univ-lyon1.fr/tplifap4/dungeonanddeamon.git
synced 2024-02-27 13:31:50 +01:00
Mise a jour commentaire
This commit is contained in:
parent
509785b7b0
commit
44ff4736e9
@ -1,7 +1,9 @@
|
|||||||
#include "GestionMobs.h"
|
#include "GestionMobs.h"
|
||||||
|
|
||||||
#include "MobsCorpACorpIA.h"
|
#include "MobsCorpACorpIA.h"
|
||||||
|
/**
|
||||||
|
* <summary>Création de la liste des mobs </summary>
|
||||||
|
*/
|
||||||
void GestionMobs::AjoutMobC2C(int pvMax, int speed, int degat, int cooldown, int rangeDegat, int rangeAgro)
|
void GestionMobs::AjoutMobC2C(int pvMax, int speed, int degat, int cooldown, int rangeDegat, int rangeAgro)
|
||||||
{
|
{
|
||||||
MobsCorpACorpIA* fireElement = MobsCorpACorpIA::_new();
|
MobsCorpACorpIA* fireElement = MobsCorpACorpIA::_new();
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include <ResourceLoader.hpp>
|
#include <ResourceLoader.hpp>
|
||||||
#include <Texture.hpp>
|
#include <Texture.hpp>
|
||||||
#include <InputEventKey.hpp>
|
#include <InputEventKey.hpp>
|
||||||
|
|
||||||
|
|
||||||
GestionPlayer::GestionPlayer()
|
GestionPlayer::GestionPlayer()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -12,7 +14,9 @@ GestionPlayer::GestionPlayer()
|
|||||||
texture_player_ptr.instance();
|
texture_player_ptr.instance();
|
||||||
texture_player_ptr->_new();
|
texture_player_ptr->_new();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* <summary>Associe les méthodes GODOT aux méthodes de la classe</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::_register_methods()
|
void GestionPlayer::_register_methods()
|
||||||
{
|
{
|
||||||
Godot::print("register Player...");
|
Godot::print("register Player...");
|
||||||
@ -23,12 +27,21 @@ void GestionPlayer::_register_methods()
|
|||||||
Godot::print("register Player OK!");
|
Godot::print("register Player OK!");
|
||||||
|
|
||||||
}
|
}
|
||||||
//fonction _pgysics_process meilleur rafraichissement de 60 fps comparé à 30 pour la fonction _process meilleur pour les mouvements plus fluides du mob
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//fonction _pgysics_process meilleur rafraichissement de 60 fps comparé à 30 pour la fonction _process meilleur pour les mouvements plus fluides du mob
|
||||||
|
</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::_physics_process(float dt) // dt = deltaTime
|
void GestionPlayer::_physics_process(float dt) // dt = deltaTime
|
||||||
{
|
{
|
||||||
p.velocity = move_and_slide(p.velocity);
|
p.velocity = move_and_slide(p.velocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée en boucle par Godot</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::_process(float dt) // dt = deltaTime
|
void GestionPlayer::_process(float dt) // dt = deltaTime
|
||||||
{
|
{
|
||||||
PlayerLogic_AutoReset();
|
PlayerLogic_AutoReset();
|
||||||
@ -38,24 +51,36 @@ void GestionPlayer::_process(float dt) // dt = deltaTime
|
|||||||
PlayerLogic(dt);
|
PlayerLogic(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée lors de l'initialison de la classe (par godot)</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::_init()
|
void GestionPlayer::_init()
|
||||||
{
|
{
|
||||||
createPlayer();
|
createPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée suivant l'initialison de la classe</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::_ready()
|
void GestionPlayer::_ready()
|
||||||
{
|
{
|
||||||
setupPlayer();
|
setupPlayer();
|
||||||
playerState.Reset();
|
playerState.Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Méthdode appelé lors de l'initilisation</summary>
|
||||||
|
*/
|
||||||
void GestionPlayer::createPlayer()
|
void GestionPlayer::createPlayer()
|
||||||
{
|
{
|
||||||
add_child(sprite_player_ptr);
|
add_child(sprite_player_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//setup des textures et des animations avec l'extension .tres qu'on a créé grâce à l'interface Godot et les fonctions animated sprite </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//setup des textures et des animations avec l'extension .tres qu'on a créé grâce à l'interface Godot et les fonctions animated sprite
|
|
||||||
void GestionPlayer::setupPlayer()
|
void GestionPlayer::setupPlayer()
|
||||||
{
|
{
|
||||||
//Chargement de la texture
|
//Chargement de la texture
|
||||||
@ -77,9 +102,11 @@ void GestionPlayer::setupPlayer()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//Fonction traitement des touches pour le déplacement du joueur, is_action_pressed fonction godot ou l'on peut changer les contrôles dans le menu godot. projet->Parametre du projet ->Contrôles
|
||||||
|
//Traitement des inputs avec des boulleen de la structure du joueur pour créer un arbre d'état et simplifier la mise en place des animations</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Fonction traitement des touches pour le déplacement du joueur, is_action_pressed fonction godot ou l'on peut changer les contrôles dans le menu godot. projet->Parametre du projet ->Contrôles
|
|
||||||
//Traitement des inputs avec des boulleen de la structure du joueur pour créer un arbre d'état et simplifier la mise en place des animations
|
|
||||||
void GestionPlayer::traitementInput()
|
void GestionPlayer::traitementInput()
|
||||||
{
|
{
|
||||||
// manage Inputs
|
// manage Inputs
|
||||||
@ -110,12 +137,14 @@ void GestionPlayer::traitementInput()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
//Fonction pour savoir si les animations sont terminé pour éviter les loops et les problèmes d'animation non términé
|
* <summary//Fonction pour savoir si les animations sont terminé pour éviter les loops et les problèmes d'animation non términé
|
||||||
//mettre en place un flag isInBlockingAnimation
|
//mettre en place un flag isInBlockingAnimation
|
||||||
//tant que ce flag est a true on block la player logic pour ne pas interrompre l'animation avec une autre anim(marche / saut par exemple)
|
//tant que ce flag est a true on block la player logic pour ne pas interrompre l'animation avec une autre anim(marche / saut par exemple)
|
||||||
//d'où le besoin de tester la fin de l'animation dans PlayerLogic_AutoReset) pour debloquer le isInBlockingAnimation = false;
|
//d'où le besoin de tester la fin de l'animation dans PlayerLogic_AutoReset) pour debloquer le isInBlockingAnimation = false;
|
||||||
//et au debut de player logic on sort si on est en blocking anim
|
//et au debut de player logic on sort si on est en blocking anim</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
void GestionPlayer::PlayerLogic_AutoReset()
|
void GestionPlayer::PlayerLogic_AutoReset()
|
||||||
{
|
{
|
||||||
playerState.Flags.right = false;
|
playerState.Flags.right = false;
|
||||||
@ -140,8 +169,10 @@ void GestionPlayer::PlayerLogic_AutoReset()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//Etat du joueur pour détérminer les futurs action, saut, au sol, chute libre et pour gérer les différentes animations avec les drapeaux </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Etat du joueur pour détérminer les futurs action, saut, au sol, chute libre et pour gérer les différentes animations avec les drapeaux
|
|
||||||
void GestionPlayer::PlayerLogic(float dt)
|
void GestionPlayer::PlayerLogic(float dt)
|
||||||
{
|
{
|
||||||
Godot::print("PlayerLogic");
|
Godot::print("PlayerLogic");
|
||||||
@ -177,10 +208,12 @@ void GestionPlayer::PlayerLogic(float dt)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
//Fonction gérant le saut du joueur et ces animations en fonctions des Flags et si le joueur est en contacte avec le sol ou non
|
* <summary>//Fonction gérant le saut du joueur et ces animations en fonctions des Flags et si le joueur est en contacte avec le sol ou non
|
||||||
//Fonction gérant la gravité avec dt= delta time
|
//Fonction gérant la gravité avec dt= delta time
|
||||||
//fonction qui gere aussi le sens des aniamtions en fonction de la vitesse
|
//fonction qui gere aussi le sens des aniamtions en fonction de la vitesse </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
void GestionPlayer::PlayerLogic_Jump(float dt)
|
void GestionPlayer::PlayerLogic_Jump(float dt)
|
||||||
{
|
{
|
||||||
Godot::print("\t Jump");
|
Godot::print("\t Jump");
|
||||||
@ -216,10 +249,12 @@ void GestionPlayer::PlayerLogic_Jump(float dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
//Fonction des animations possibles si le joueur se trouve au sol
|
* <summary>//Fonction des animations possibles si le joueur se trouve au sol
|
||||||
//avec les animations qui se trouve dans le fichier "HeroKnight.tres"
|
//avec les animations qui se trouve dans le fichier "HeroKnight.tres"
|
||||||
//en fonction dss flags des booleens isinblockinganiamtion pour éviter toute loop
|
//en fonction dss flags des booleens isinblockinganiamtion pour éviter toute loop </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
void GestionPlayer::PlayerLogic_OnGround(float dt)
|
void GestionPlayer::PlayerLogic_OnGround(float dt)
|
||||||
{
|
{
|
||||||
Godot::print("\t OnGround");
|
Godot::print("\t OnGround");
|
||||||
@ -240,6 +275,7 @@ void GestionPlayer::PlayerLogic_OnGround(float dt)
|
|||||||
else if (playerState.Flags.dash)
|
else if (playerState.Flags.dash)
|
||||||
{
|
{
|
||||||
sprite_player_ptr->play("dash");
|
sprite_player_ptr->play("dash");
|
||||||
|
p.velocity.x = -speed;
|
||||||
p.velocity.x =+ 1000.0f;
|
p.velocity.x =+ 1000.0f;
|
||||||
playerState.Flags.isInBlockingAnimation = true;
|
playerState.Flags.isInBlockingAnimation = true;
|
||||||
playerState.Flags.dash = false;
|
playerState.Flags.dash = false;
|
||||||
@ -272,8 +308,10 @@ void GestionPlayer::PlayerLogic_OnGround(float dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//Fonction qui gere les animations si le joueur est en chute libre, dans le bon sens en fonction de la velocité</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Fonction qui gere les animations si le joueur est en chute libre, dans le bon sens en fonction de la velocité
|
|
||||||
void GestionPlayer::PlayerLogic_FreeFall(float dt)
|
void GestionPlayer::PlayerLogic_FreeFall(float dt)
|
||||||
{
|
{
|
||||||
Godot::print("\t FreeFall");
|
Godot::print("\t FreeFall");
|
||||||
@ -294,8 +332,10 @@ void GestionPlayer::PlayerLogic_FreeFall(float dt)
|
|||||||
p.velocity.y += gravity * dt;
|
p.velocity.y += gravity * dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//Fonction qui inisalise la position du joueur </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Fonction qui inisalise la position du joueur
|
|
||||||
void GestionPlayer::setPosition(float x, float y)
|
void GestionPlayer::setPosition(float x, float y)
|
||||||
{
|
{
|
||||||
Transform2D t;
|
Transform2D t;
|
||||||
|
@ -19,6 +19,9 @@ MobsCorpACorpIA::MobsCorpACorpIA()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Associe les méthodes GODOT aux méthodes de la classe</summary>
|
||||||
|
*/
|
||||||
void MobsCorpACorpIA::_register_methods()
|
void MobsCorpACorpIA::_register_methods()
|
||||||
{
|
{
|
||||||
Godot::print("register Mobs...");
|
Godot::print("register Mobs...");
|
||||||
@ -29,26 +32,38 @@ void MobsCorpACorpIA::_register_methods()
|
|||||||
Godot::print("register Mobs OK!");
|
Godot::print("register Mobs OK!");
|
||||||
|
|
||||||
}
|
}
|
||||||
//fonction _pgysics_process meilleur rafraichissement de 60 fps comparé à 30 pour la fonction _process meilleur pour les mouvement plus fluide du mob
|
|
||||||
|
/**
|
||||||
|
* <summary>//fonction _pgysics_process meilleur rafraichissement de 60 fps comparé à 30 pour la fonction _process meilleur pour les mouvement plus fluide du mob
|
||||||
|
</summary>
|
||||||
|
*/
|
||||||
void MobsCorpACorpIA::_physics_process(float dt)
|
void MobsCorpACorpIA::_physics_process(float dt)
|
||||||
{
|
{
|
||||||
mouvement(dt);
|
mouvement(dt);
|
||||||
m.velocity = move_and_slide(m.velocity);
|
m.velocity = move_and_slide(m.velocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée en boucle par Godot</summary>
|
||||||
|
*/
|
||||||
void MobsCorpACorpIA::_process(float delta)
|
void MobsCorpACorpIA::_process(float delta)
|
||||||
{
|
{
|
||||||
animation();
|
animation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée lors de l'initialison de la classe (par godot)</summary>
|
||||||
|
*/
|
||||||
void MobsCorpACorpIA::_init()
|
void MobsCorpACorpIA::_init()
|
||||||
{
|
{
|
||||||
Godot::print("init Mobs");
|
Godot::print("init Mobs");
|
||||||
createMobsCorpACorp();
|
createMobsCorpACorp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//fonction qui met en place et creer le mob</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//fonction qui met en place et creer le mob
|
|
||||||
void MobsCorpACorpIA::createMobsCorpACorp()
|
void MobsCorpACorpIA::createMobsCorpACorp()
|
||||||
{
|
{
|
||||||
add_child(sprite_MobsCorpACorp_ptr);
|
add_child(sprite_MobsCorpACorp_ptr);
|
||||||
@ -56,14 +71,20 @@ void MobsCorpACorpIA::createMobsCorpACorp()
|
|||||||
Godot::print("Creation mobs");
|
Godot::print("Creation mobs");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée suivant l'initialison de la classe</summary>
|
||||||
|
*/
|
||||||
void MobsCorpACorpIA::_ready()
|
void MobsCorpACorpIA::_ready()
|
||||||
{
|
{
|
||||||
setupMobsCorpACorp();
|
setupMobsCorpACorp();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* <summary>//setup des textures et des animations avec l'extension .tres qu'on a créé grâce à l'interface Godot et les fonctions animated sprite
|
||||||
|
</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
//setup des textures et des animations avec l'extension .tres qu'on a créé grâce à l'interface Godot et les fonctions animated sprite
|
|
||||||
void MobsCorpACorpIA::setupMobsCorpACorp()
|
void MobsCorpACorpIA::setupMobsCorpACorp()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -90,7 +111,11 @@ void MobsCorpACorpIA::setupMobsCorpACorp()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//fonction qui set la position dans l'écrans du mob
|
|
||||||
|
/**
|
||||||
|
* <summary>//fonction qui set la position dans l'écrans du mob</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
void MobsCorpACorpIA::setPosition(float x, float y)
|
void MobsCorpACorpIA::setPosition(float x, float y)
|
||||||
{
|
{
|
||||||
Transform2D t;
|
Transform2D t;
|
||||||
@ -108,8 +133,10 @@ void MobsCorpACorpIA::setPosition(float x, float y)
|
|||||||
set_transform(t);
|
set_transform(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//fonction office de mini IA qui va déplacer les mobs en fonction de la positon du joueur TargetPosition </summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//fonction office de mini IA qui va déplacer les mobs en fonction de la positon du joueur TargetPosition
|
|
||||||
void MobsCorpACorpIA::mouvement(float dt)
|
void MobsCorpACorpIA::mouvement(float dt)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -150,7 +177,9 @@ void MobsCorpACorpIA::mouvement(float dt)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée lors de l'initialison de la classe (par godot)</summary>
|
||||||
|
*/
|
||||||
//Fonction qui gere les animations en fonction des mouvements et de la direction du joueur
|
//Fonction qui gere les animations en fonction des mouvements et de la direction du joueur
|
||||||
void MobsCorpACorpIA::animation()
|
void MobsCorpACorpIA::animation()
|
||||||
{
|
{
|
||||||
@ -177,7 +206,9 @@ void MobsCorpACorpIA::animation()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Methode éxécutée lors de l'initialison de la classe (par godot)</summary>
|
||||||
|
*/
|
||||||
//Deplacement mob a droite
|
//Deplacement mob a droite
|
||||||
void MobsCorpACorpIA::droit()
|
void MobsCorpACorpIA::droit()
|
||||||
{
|
{
|
||||||
@ -185,23 +216,29 @@ void MobsCorpACorpIA::droit()
|
|||||||
m.velocity.x = speed;
|
m.velocity.x = speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>//Deplacement mob a gauche</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Deplacement mob a gauche
|
|
||||||
void MobsCorpACorpIA::gauche()
|
void MobsCorpACorpIA::gauche()
|
||||||
{
|
{
|
||||||
//Godot::print("Deplacement mob a gauche");
|
//Godot::print("Deplacement mob a gauche");
|
||||||
m.velocity.x = -speed;
|
m.velocity.x = -speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <summary>Deplacement mob a bas</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
//Deplacement mob a bas
|
|
||||||
void MobsCorpACorpIA::bas()
|
void MobsCorpACorpIA::bas()
|
||||||
{
|
{
|
||||||
m.velocity.y = -power_jump;
|
m.velocity.y = -power_jump;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* <summary>//Deplacement mob a saut</summary>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
//Deplacement mob a saut
|
|
||||||
void MobsCorpACorpIA::saut()
|
void MobsCorpACorpIA::saut()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user