From 77ad3c34d404bcd9d203d6c7edb5a2b4f53aa2fb Mon Sep 17 00:00:00 2001 From: gwiz Date: Sat, 2 May 2020 12:31:30 +0200 Subject: [PATCH] debut mouvement animation player --- .../Hero Knight/HeroKnight/HeroKnight.tres | 132 ++++++++++++++++++ .../DungeonAndDemaonScript/GestionPlayer.cpp | 38 ++++- .../DungeonAndDemaonScript/GestionPlayer.h | 7 +- 3 files changed, 172 insertions(+), 5 deletions(-) create mode 100644 DungeonAndDeamon/Character/Hero Knight/HeroKnight/HeroKnight.tres 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/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp index 34575f8..4124680 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.cpp @@ -1,5 +1,5 @@ #include "GestionPlayer.h" - +#include #include #include #include @@ -7,8 +7,8 @@ GestionPlayer::GestionPlayer() { - sprite_player_ptr = Sprite::_new(); + sprite_player_ptr = AnimatedSprite::_new(); texture_player_ptr.instance(); texture_player_ptr->_new(); } @@ -27,6 +27,7 @@ void GestionPlayer::_process(float dt) // dt = deltaTime { traitementInput(dt); p.velocity = move_and_slide(p.velocity); + animation(); } @@ -53,7 +54,17 @@ 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) @@ -85,6 +96,27 @@ void GestionPlayer::traitementInput(float dt) } +void GestionPlayer::animation() +{ + + if (p.velocity.x > 0.0f) + { + sprite_player_ptr->play("Walk"); + sprite_player_ptr->set_flip_h(false); + } + else if (p.velocity.x < 0.0f) + { + sprite_player_ptr->play("Walk"); + sprite_player_ptr->set_flip_h(true); + } + else + { + sprite_player_ptr->play("Idle"); + } + + +} + void GestionPlayer::setPosition(int x, int y) { Transform2D t; diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionPlayer.h index 38e18b2..b73f7ca 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; @@ -44,6 +46,7 @@ private: void saut(); void idle(); void attack(); + void animation(); public: const float speed = 100.f; const float GamePlayMultiplicator = 100.0f;