diff --git a/Crawler/Animation.h b/Crawler/Animation.h new file mode 100644 index 00000000..6b28877c --- /dev/null +++ b/Crawler/Animation.h @@ -0,0 +1,6 @@ +#pragma once + +enum AnimationState{ + WALK_S,WALK_E,WALK_N,WALK_W, + IDLE_S,IDLE_E,IDLE_N,IDLE_W +}; \ No newline at end of file diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj index 124e59b1..aa3c38f3 100644 --- a/Crawler/Crawler.vcxproj +++ b/Crawler/Crawler.vcxproj @@ -129,6 +129,7 @@ + diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters index 9ba021dd..ea456f93 100644 --- a/Crawler/Crawler.vcxproj.filters +++ b/Crawler/Crawler.vcxproj.filters @@ -33,6 +33,9 @@ Header Files + + Header Files + diff --git a/Crawler/Monster.cpp b/Crawler/Monster.cpp index a5c71d21..f0924400 100644 --- a/Crawler/Monster.cpp +++ b/Crawler/Monster.cpp @@ -1,5 +1,7 @@ #include "Monster.h" +extern std::mapANIMATION_DATA; + MonsterData::MonsterData(){} MonsterData::MonsterData(int hp,int atk,float moveSpd,float size,MonsterStrategy strategy): hp(hp),atk(atk),moveSpd(moveSpd),size(size),strategy(strategy){ diff --git a/Crawler/Monster.h b/Crawler/Monster.h index 008f0d77..624ae8d9 100644 --- a/Crawler/Monster.h +++ b/Crawler/Monster.h @@ -1,4 +1,6 @@ #include "olcPixelGameEngine.h" +#include "Animation.h" +#include "olcUTIL_Animate2D.h" enum MonsterStrategy{ RUN_TOWARDS, @@ -12,6 +14,7 @@ struct MonsterData{ float moveSpd;//1.0=100% float size; MonsterStrategy strategy; + Animate2D::Animationanimation; public: MonsterData(); MonsterData(int hp,int atk,float moveSpd=1.0f,float size=1.0f,MonsterStrategy strategy=RUN_TOWARDS); @@ -45,4 +48,10 @@ struct Monster{ int GetAttack(); float GetMoveSpdMult(); float GetSizeMult(); +}; + +struct MonsterSpawner{ + vf2d pos; + int range; + std::vector>monsters; }; \ No newline at end of file diff --git a/Crawler/assets/slime.png b/Crawler/assets/slime.png index 8c9a2063..2cb03fb7 100644 Binary files a/Crawler/assets/slime.png and b/Crawler/assets/slime.png differ diff --git a/Crawler/main.cpp b/Crawler/main.cpp index f6c1d137..3f2b9539 100644 --- a/Crawler/main.cpp +++ b/Crawler/main.cpp @@ -5,15 +5,12 @@ #include "olcPGEX_TransformedView.h" #include "olcUTIL_Animate2D.h" #include "Monster.h" +#include "Animation.h" const vi2d WINDOW_SIZE={24*8,24*8}; extern std::mapMONSTER_DATA; - -enum AnimationState{ - WALK_S,WALK_E,WALK_N,WALK_W, - IDLE_S,IDLE_E,IDLE_N,IDLE_W -}; +std::mapANIMATION_DATA; struct Player{ private: @@ -72,8 +69,8 @@ struct Player{ void Update(float fElapsedTime){ animation.UpdateState(internal_animState,fElapsedTime); } - void AddAnimation(AnimationState state,Animate2D::FrameSequence frame){ - animation.AddState(state,frame); + void AddAnimation(AnimationState state){ + animation.AddState(state,ANIMATION_DATA[state]); }; void UpdateAnimation(AnimationState animState){ animation.ChangeState(internal_animState,animState); @@ -119,61 +116,72 @@ public: GFX_Pl_sheet.Load("assets/nico-warrior.png"); //Animations + InitializeAnimations(); + + player.AddAnimation(AnimationState::WALK_N); + player.AddAnimation(AnimationState::WALK_E); + player.AddAnimation(AnimationState::WALK_S); + player.AddAnimation(AnimationState::WALK_W); + player.AddAnimation(AnimationState::IDLE_N); + player.AddAnimation(AnimationState::IDLE_E); + player.AddAnimation(AnimationState::IDLE_S); + player.AddAnimation(AnimationState::IDLE_W); + view=TileTransformedView{GetScreenSize(),{1,1}}; + + player.SetPos({4*24,4*24}); + player.UpdateAnimation(AnimationState::IDLE_S); + + std::cout<