diff --git a/DungeonAndDeamon/Character/Fire Elemental Sprite Sheet/fireelement.tres b/DungeonAndDeamon/Character/Fire Elemental Sprite Sheet/fireelement.tres new file mode 100644 index 0000000..3fe26c0 --- /dev/null +++ b/DungeonAndDeamon/Character/Fire Elemental Sprite Sheet/fireelement.tres @@ -0,0 +1,41 @@ +[gd_resource type="SpriteFrames" load_steps=22 format=2] + +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental31.png" type="Texture" id=1] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental10.png" type="Texture" id=2] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental32.png" type="Texture" id=3] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental00.png" type="Texture" id=4] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental05.png" type="Texture" id=5] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental01.png" type="Texture" id=6] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental11.png" type="Texture" id=7] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental13.png" type="Texture" id=8] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental29.png" type="Texture" id=9] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental08.png" type="Texture" id=10] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental06.png" type="Texture" id=11] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental03.png" type="Texture" id=12] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental04.png" type="Texture" id=13] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental28.png" type="Texture" id=14] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental30.png" type="Texture" id=15] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental12.png" type="Texture" id=16] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental02.png" type="Texture" id=17] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental09.png" type="Texture" id=18] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental34.png" type="Texture" id=19] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental35.png" type="Texture" id=20] +[ext_resource path="res://Character/Fire Elemental Sprite Sheet/fireelemental33.png" type="Texture" id=21] + +[resource] +animations = [ { +"frames": [ ExtResource( 10 ), ExtResource( 18 ), ExtResource( 2 ), ExtResource( 7 ), ExtResource( 16 ), ExtResource( 8 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 4 ), ExtResource( 6 ), ExtResource( 17 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 5 ), ExtResource( 11 ) ], +"loop": true, +"name": "walk", +"speed": 5.0 +}, { +"frames": [ ExtResource( 14 ), ExtResource( 9 ), ExtResource( 15 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 21 ), ExtResource( 19 ), ExtResource( 20 ) ], +"loop": true, +"name": "dead", +"speed": 5.0 +} ] diff --git a/DungeonAndDeamon/Character/Hero Knight/HeroKnight/HeroKnight.tres b/DungeonAndDeamon/Character/Hero Knight/HeroKnight/HeroKnight.tres new file mode 100644 index 0000000..b82ba79 --- /dev/null +++ b/DungeonAndDeamon/Character/Hero Knight/HeroKnight/HeroKnight.tres @@ -0,0 +1,132 @@ +[gd_resource type="SpriteFrames" load_steps=73 format=2] + +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_07.png" type="Texture" id=1] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_10.png" type="Texture" id=2] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_16.png" type="Texture" id=3] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_04.png" type="Texture" id=4] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_06.png" type="Texture" id=5] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_15.png" type="Texture" id=6] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_02.png" type="Texture" id=7] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_03.png" type="Texture" id=8] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_09.png" type="Texture" id=9] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_14.png" type="Texture" id=10] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_01.png" type="Texture" id=11] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_11.png" type="Texture" id=12] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_13.png" type="Texture" id=13] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_05.png" type="Texture" id=14] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_12.png" type="Texture" id=15] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_17.png" type="Texture" id=16] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_18.png" type="Texture" id=17] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_39.png" type="Texture" id=18] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_44.png" type="Texture" id=19] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_42.png" type="Texture" id=20] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_43.png" type="Texture" id=21] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_40.png" type="Texture" id=22] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_41.png" type="Texture" id=23] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_45.png" type="Texture" id=24] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_64.png" type="Texture" id=25] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_60.png" type="Texture" id=26] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_62.png" type="Texture" id=27] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_61.png" type="Texture" id=28] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_63.png" type="Texture" id=29] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_51.png" type="Texture" id=30] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_56.png" type="Texture" id=31] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_57.png" type="Texture" id=32] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_50.png" type="Texture" id=33] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_65.png" type="Texture" id=34] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_47.png" type="Texture" id=35] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_46.png" type="Texture" id=36] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_55.png" type="Texture" id=37] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_23.png" type="Texture" id=38] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_36.png" type="Texture" id=39] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_31.png" type="Texture" id=40] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_24.png" type="Texture" id=41] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_33.png" type="Texture" id=42] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_37.png" type="Texture" id=43] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_52.png" type="Texture" id=44] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_58.png" type="Texture" id=45] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_22.png" type="Texture" id=46] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_48.png" type="Texture" id=47] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_20.png" type="Texture" id=48] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_32.png" type="Texture" id=49] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_19.png" type="Texture" id=50] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_34.png" type="Texture" id=51] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_35.png" type="Texture" id=52] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_30.png" type="Texture" id=53] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_49.png" type="Texture" id=54] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_21.png" type="Texture" id=55] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_53.png" type="Texture" id=56] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_54.png" type="Texture" id=57] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_68.png" type="Texture" id=58] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_70.png" type="Texture" id=59] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_71.png" type="Texture" id=60] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_77.png" type="Texture" id=61] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_76.png" type="Texture" id=62] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_80.png" type="Texture" id=63] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_73.png" type="Texture" id=64] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_78.png" type="Texture" id=65] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_74.png" type="Texture" id=66] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_69.png" type="Texture" id=67] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_72.png" type="Texture" id=68] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_75.png" type="Texture" id=69] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_79.png" type="Texture" id=70] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_67.png" type="Texture" id=71] +[ext_resource path="res://Character/Hero Knight/HeroKnight/Layer 1_sprite_66.png" type="Texture" id=72] + +[resource] +animations = [ { +"frames": [ ExtResource( 11 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 4 ), ExtResource( 14 ), ExtResource( 5 ), ExtResource( 1 ) ], +"loop": true, +"name": "Idle", +"speed": 4.0 +}, { +"frames": [ ExtResource( 36 ), ExtResource( 35 ), ExtResource( 47 ), ExtResource( 54 ) ], +"loop": true, +"name": "degat", +"speed": 5.0 +}, { +"frames": [ ExtResource( 33 ), ExtResource( 30 ), ExtResource( 44 ), ExtResource( 56 ), ExtResource( 57 ), ExtResource( 37 ), ExtResource( 31 ), ExtResource( 32 ), ExtResource( 45 ) ], +"loop": true, +"name": "mort", +"speed": 5.0 +}, { +"frames": [ ExtResource( 18 ), ExtResource( 22 ), ExtResource( 23 ) ], +"loop": true, +"name": "Jump Up", +"speed": 5.0 +}, { +"frames": [ ExtResource( 53 ), ExtResource( 40 ), ExtResource( 49 ), ExtResource( 42 ), ExtResource( 51 ), ExtResource( 52 ), ExtResource( 39 ), ExtResource( 43 ) ], +"loop": true, +"name": "attack2", +"speed": 5.0 +}, { +"frames": [ ExtResource( 26 ), ExtResource( 28 ), ExtResource( 27 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 34 ), ExtResource( 72 ), ExtResource( 71 ) ], +"loop": true, +"name": "shield", +"speed": 5.0 +}, { +"frames": [ ExtResource( 9 ), ExtResource( 2 ), ExtResource( 12 ), ExtResource( 15 ), ExtResource( 13 ), ExtResource( 10 ), ExtResource( 6 ), ExtResource( 3 ), ExtResource( 16 ), ExtResource( 17 ) ], +"loop": true, +"name": "Walk", +"speed": 5.0 +}, { +"frames": [ ExtResource( 20 ), ExtResource( 21 ), ExtResource( 19 ), ExtResource( 24 ) ], +"loop": true, +"name": "jump Down", +"speed": 5.0 +}, { +"frames": [ ExtResource( 50 ), ExtResource( 50 ), ExtResource( 48 ), ExtResource( 55 ), ExtResource( 46 ), ExtResource( 41 ), ExtResource( 38 ) ], +"loop": true, +"name": "attack", +"speed": 5.0 +}, { +"frames": [ ExtResource( 68 ), ExtResource( 64 ), ExtResource( 66 ), ExtResource( 69 ), ExtResource( 62 ), ExtResource( 61 ), ExtResource( 65 ), ExtResource( 70 ), ExtResource( 63 ) ], +"loop": true, +"name": "dash", +"speed": 5.0 +}, { +"frames": [ ExtResource( 58 ), ExtResource( 67 ), ExtResource( 59 ), ExtResource( 60 ) ], +"loop": true, +"name": "block", +"speed": 5.0 +} ] diff --git a/DungeonAndDeamon/DungeonAndDaemon.pck b/DungeonAndDeamon/DungeonAndDaemon.pck index 9d5580b..b28ab60 100644 Binary files a/DungeonAndDeamon/DungeonAndDaemon.pck and b/DungeonAndDeamon/DungeonAndDaemon.pck differ diff --git a/DungeonAndDeamon/project.godot b/DungeonAndDeamon/project.godot index b0efb89..0731e7b 100644 --- a/DungeonAndDeamon/project.godot +++ b/DungeonAndDeamon/project.godot @@ -32,6 +32,26 @@ ui_right={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } +dash={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"unicode":0,"echo":false,"script":null) + ] +} +attack={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":79,"unicode":0,"echo":false,"script":null) + ] +} +attack2={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":80,"unicode":0,"echo":false,"script":null) + ] +} +block={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) + ] +} [rendering] diff --git a/DungeonAndDeamon/root.tscn b/DungeonAndDeamon/root.tscn index f2a62dc..248b3e3 100644 --- a/DungeonAndDeamon/root.tscn +++ b/DungeonAndDeamon/root.tscn @@ -2,5 +2,5 @@ [ext_resource path="res://root.gdns" type="Script" id=1] -[node name="Node2D" type="Node2D"] +[node name="Node2D" type="AnimatedSprite"] script = ExtResource( 1 ) diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp index 83d77eb..5e5a7a9 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp @@ -24,10 +24,14 @@ GestionJeu::GestionJeu() GestionJeu::~GestionJeu() { +<<<<<<< HEAD delete gTerrain; delete gPlayer; delete gMobs; delete gCollision; +======= + delete gMobs; +>>>>>>> origin/master } /** diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp index 34575f8..802f7ea 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp @@ -1,14 +1,14 @@ #include "GestionPlayer.h" - +#include #include #include #include #include - +#include GestionPlayer::GestionPlayer() { - sprite_player_ptr = Sprite::_new(); + sprite_player_ptr = AnimatedSprite::_new(); texture_player_ptr.instance(); texture_player_ptr->_new(); } @@ -25,9 +25,13 @@ void GestionPlayer::_register_methods() void GestionPlayer::_process(float dt) // dt = deltaTime { - traitementInput(dt); - p.velocity = move_and_slide(p.velocity); + playerState.right = false; + playerState.left = false; + traitementInput(); + + PlayerLogic(dt); + p.velocity = move_and_slide(p.velocity); } void GestionPlayer::_init() @@ -53,10 +57,20 @@ void GestionPlayer::setupPlayer() //setup du sprite //Godot::print("SetUp de Sprite"); - sprite_player_ptr->set_texture(texture_player_ptr); + Ref spriteFrames = ResourceLoader::get_singleton()->load("res://Character/Hero Knight/HeroKnight/HeroKnight.tres"); + sprite_player_ptr->set_sprite_frames(spriteFrames); + + PoolStringArray AnimNames = spriteFrames->get_animation_names(); + PoolStringArray::Read r = AnimNames.read(); + Godot::print("Animations Names"); + for (int i = 0; i < AnimNames.size(); ++i) + { + Godot::print(r[i]); + } + } -void GestionPlayer::traitementInput(float dt) +void GestionPlayer::traitementInput() { // manage Inputs Input* i = Input::get_singleton(); @@ -64,25 +78,147 @@ void GestionPlayer::traitementInput(float dt) // move in X directions p.velocity.x = 0.0f; // rest x, keyboard action will change this if (i->is_action_pressed("ui_left")) - gauche(); + playerState.left = true; if (i->is_action_pressed("ui_right")) - droit(); + playerState.right = true; + if (i->is_action_pressed("dash")) + playerState.dash = true; + if (i->is_action_pressed("attack")) + playerState.attack = true; + if (i->is_action_pressed("attack2")) + playerState.bigattack = true; + if (i->is_action_pressed("block")) + playerState.block = true; - // update Velocity + + + // move in Y directions + if (i->is_action_pressed("ui_select")) + playerState.jump = true; + + +} + +void GestionPlayer::PlayerLogic(float dt) +{ + if (playerState.jump) + { + // attack en l'air + PlayerLogic_Jump(dt); + } + else + { + // attack au sol + if (on_ground) + { + PlayerLogic_OnGround(dt); + } + else + { // freefall + // attack en l'air + PlayerLogic_FreeFall(dt); + } + } +} + +void GestionPlayer::PlayerLogic_Jump(float dt) +{ if (on_ground) { - p.velocity.y = 0.0f; + p.velocity.y = power_jump; } else { p.velocity.y += gravity * dt; } + if (p.velocity.y > 0.0f) + { + playerState.jump = false; + playerState.freefall = true; + } + else + { + if (playerState.left) + { + p.velocity.x = -speed; + sprite_player_ptr->play("Jump Up"); + sprite_player_ptr->set_flip_h(true); + } + else if (playerState.right) + { + p.velocity.x = +speed; + sprite_player_ptr->play("Jump Up"); + sprite_player_ptr->set_flip_h(false); + } + } +} - // move in Y directions - if (i->is_action_pressed("ui_select")) - saut(); +void GestionPlayer::PlayerLogic_OnGround(float dt) +{ + p.velocity.y = 0.0f; + if (playerState.attack) + { + sprite_player_ptr->play("attack"); + } + else if (playerState.bigattack) + { + + sprite_player_ptr->play("attack2"); + + } + else if (playerState.dash) + { + sprite_player_ptr->play("dash"); + p.velocity.x =+ 50; + + } + else if (playerState.block) + { + + sprite_player_ptr->play("shield"); + + + } + else if (playerState.left) + { + p.velocity.x = -speed; + sprite_player_ptr->play("Walk"); + sprite_player_ptr->set_flip_h(true); + } + else if (playerState.right) + { + p.velocity.x = +speed; + sprite_player_ptr->play("Walk"); + sprite_player_ptr->set_flip_h(false); + } + else if (pv <= 0) + { + sprite_player_ptr->play("mort"); + } + else + { + sprite_player_ptr->play("Idle"); + } +} + +void GestionPlayer::PlayerLogic_FreeFall(float dt) +{ + p.velocity.x = +speed; + if (playerState.left) + { + p.velocity.x = -speed; + sprite_player_ptr->play("jump Down"); + sprite_player_ptr->set_flip_h(true); + } + else if (playerState.right) + { + p.velocity.x = +speed; + sprite_player_ptr->play("jump Down"); + sprite_player_ptr->set_flip_h(false); + } + p.velocity.y += gravity * dt; } void GestionPlayer::setPosition(int x, int y) @@ -104,7 +240,7 @@ void GestionPlayer::setPosition(int x, int y) //init Velocity p.velocity = Vector2(0.0f, 0.0f); } - +/* void GestionPlayer::droit() { Godot::print("Deplacement a droite"); @@ -123,10 +259,7 @@ void GestionPlayer::bas() void GestionPlayer::saut() { - if (on_ground) - { - p.velocity.y = power_jump; - } + } void GestionPlayer::idle() @@ -134,6 +267,24 @@ void GestionPlayer::idle() p.velocity.x = 0.0; } +void GestionPlayer::dash() +{ + p.velocity.x =+1000; + sprite_player_ptr->play("dash"); +} + void GestionPlayer::attack() { + sprite_player_ptr->play("attack"); } + +void GestionPlayer::block() +{ + sprite_player_ptr->play("block"); +} + +void GestionPlayer::bigattack() +{ + sprite_player_ptr->play("attack2"); +} +*/ \ No newline at end of file diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h index 38e18b2..0496f45 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h @@ -2,7 +2,7 @@ #include #include #include - +#include #include "Player.h" @@ -12,7 +12,9 @@ using namespace godot; class GestionPlayer : public KinematicBody2D { public: - Sprite* sprite_player_ptr; + + AnimatedSprite* sprite_player_ptr; + Ref texture_player_ptr; @@ -33,19 +35,30 @@ public: Player p; public: - void traitementInput(float dt); + void traitementInput(); void setPosition(int x, int y); private: - void droit(); - void gauche(); - void bas(); - void saut(); - void idle(); - void attack(); + //void droit(); + //void gauche(); + //void bas(); + //void saut(); + //void dash(); + //void idle(); + //void attack(); + //void bigattack(); + //void block(); + + + void PlayerLogic(float dt); + void PlayerLogic_OnGround(float dt); + void PlayerLogic_Jump(float dt); + void PlayerLogic_FreeFall(float dt); + public: const float speed = 100.f; + float pv = 100; const float GamePlayMultiplicator = 100.0f; const float gravity = 9.8f * GamePlayMultiplicator; const float power_jump = -5.0f * GamePlayMultiplicator; @@ -53,10 +66,22 @@ public: bool on_roof = false; bool on_left_wall = false; bool on_right_wall = false; - bool right; - bool left; - bool jump; + + struct S_PlayerState + { + bool right; + bool left; + bool jump; + bool dash; + bool idle; + bool attack; + bool bigattack; + bool block; + + bool freefall; + + } playerState; private: Vector2 velocity; diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.cpp index 4ce246f..a6a6dda 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.cpp @@ -1,5 +1,6 @@ #include "MobsCorpACorpIA.h" #include +#include #include #include #include @@ -8,7 +9,7 @@ MobsCorpACorpIA::MobsCorpACorpIA() { - sprite_MobsCorpACorp_ptr = Sprite::_new(); + sprite_MobsCorpACorp_ptr = AnimatedSprite::_new(); collision_MobsCorpACorp_ptr = CollisionShape2D::_new(); texture_MobsCorpACorp_ptr.instance(); texture_MobsCorpACorp_ptr->_new(); @@ -37,6 +38,7 @@ void MobsCorpACorpIA::_physics_process(float dt) void MobsCorpACorpIA::_process(float delta) { + animation(); } void MobsCorpACorpIA::_init() @@ -63,20 +65,25 @@ void MobsCorpACorpIA::setupMobsCorpACorp() //Setup du shape - Godot::print("SetUp de Shape Mobs"); - shape_MobsCorpACorp_ptr.ptr()->_new(); + //Chargement de la texture Godot::print("SetUp de Texture Mobs"); texture_MobsCorpACorp_ptr = ResourceLoader::get_singleton()->load("res://Character/Fire Elemental Sprite Sheet/fireelemental00.png"); //setup du sprite - Godot::print("SetUp de Sprite Mobs"); - sprite_MobsCorpACorp_ptr->set_texture(texture_MobsCorpACorp_ptr); + //Godot::print("SetUp de Sprite"); + Ref spriteFrames = ResourceLoader::get_singleton()->load("res://Character/Fire Elemental Sprite Sheet/fireelement.tres"); + sprite_MobsCorpACorp_ptr->set_sprite_frames(spriteFrames); + + PoolStringArray AnimNames = spriteFrames->get_animation_names(); + PoolStringArray::Read r = AnimNames.read(); + Godot::print("Animations Names"); + for (int i = 0; i < AnimNames.size(); ++i) + { + Godot::print(r[i]); + } - //setup du collision Shape - Godot::print("SetUp de CollisionShape Mobs"); - collision_MobsCorpACorp_ptr->set_shape(shape_MobsCorpACorp_ptr); } @@ -133,6 +140,32 @@ void MobsCorpACorpIA::mouvement(float dt) } +} + + +void MobsCorpACorpIA::animation() +{ + + if (m.velocity.x > 0.0f) + { + sprite_MobsCorpACorp_ptr->play("walk"); + sprite_MobsCorpACorp_ptr->set_flip_h(false); + } + else if (m.velocity.x < 0.0f) + { + sprite_MobsCorpACorp_ptr->play("walk"); + sprite_MobsCorpACorp_ptr->set_flip_h(true); + } + else if (pv <=0 ) + { + sprite_MobsCorpACorp_ptr->play("dead"); + } + else + { + sprite_MobsCorpACorp_ptr->play("idle"); + } + + } void MobsCorpACorpIA::droit() diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.h index fa48d51..2973e01 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.h +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/MobsCorpACorpIA.h @@ -15,7 +15,7 @@ class MobsCorpACorpIA : public KinematicBody2D { public: - Sprite* sprite_MobsCorpACorp_ptr; + AnimatedSprite* sprite_MobsCorpACorp_ptr; CollisionShape2D* collision_MobsCorpACorp_ptr; Ref texture_MobsCorpACorp_ptr; @@ -35,6 +35,7 @@ public: void _process(float delta); void _init(); void _ready(); + void animation(); private: void droit(); @@ -61,6 +62,7 @@ public: public: void Action(); const float GamePlayMultiplicator = 100.0f; + float pv = 100.0f; const float gravity = 9.8f * GamePlayMultiplicator; const float speed = 50.f; const float power_jump = -2.0f * GamePlayMultiplicator;