From 15e6abc1026f0226defad42fa4b407564ad249a1 Mon Sep 17 00:00:00 2001 From: Alan Youngblood Date: Sun, 27 Aug 2023 19:46:16 -0400 Subject: [PATCH] Parsing for SpriteComponent JSON --- .DS_Store | Bin 10244 -> 10244 bytes assets/.DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 6148 -> 6148 bytes src/ecs/SpriteComponent.h | 23 ++++++++++++++++------- src/game/Game.cpp | 3 ++- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.DS_Store b/.DS_Store index 8066f493119d17af8c2417d8a891211bd3a46081..4e94d3798b9c81f3dbd6792513da055c33b8b33c 100644 GIT binary patch delta 280 zcmZn(XbIS$DiF)2(8a*Oz`~%%kj{|FP?DSP;*yk;p9B=+SjDkam&xm>BdUA~UipFy z!{Frn+ybB;1{T51O#-!yjM0;X(ityI&Japt+&THYP@#rob+w^^rH+E3iD|8lLbaih zrJ0U`g@I{pEhmSlvc7dte0EN5UViuFbYXeMp3UvT4;Yza(y}IJiGE|ewmDJkI5Xq5 z$(m9>G+axb{$+%?kd+~cp%mzY9EOzKe1sbzDkghM%QD41*qkB#k&)@>i_OuptC=>l PEBs=aB$|$5@*+k6FHKWe delta 257 zcmZn(XbIS$DiF*1&76UOfrUYjA)O(Up(Hoo#U&{xKM5$taVa6SX`1U%M^yO~yz&JZ zhQZ1CxdlKy3@iehn*?eZ8G|PYr86FwoFSCPxMT8pp+a?u>S|+4OC1G6%UT_UYC|Ja zBOL`(OVip~P7YCJee0n3?3~=Z{I1Cv!t#vWn>&ObFf#Xu=}yiT{l>UzbCTF`X2w;M zwWNNqwP&&4_~AKOLs|yL^pcik>Mz)wDgBX=>5Tg37}?cKo7oh8vrJ|ZO+ztbF(Ux1 C!A_X~ diff --git a/assets/.DS_Store b/assets/.DS_Store index 0079dd656181db4bbcf2657b5b76210ad325bba3..a86f354ff97d2b11d8dd2382996006128e18a679 100644 GIT binary patch delta 20 bcmZoMXffEJ!NjfFzGF10uh(^b delta 141 zcmZoMXffDugwk|Y3ztShO diff --git a/src/ecs/SpriteComponent.h b/src/ecs/SpriteComponent.h index bfabd28..3794177 100644 --- a/src/ecs/SpriteComponent.h +++ b/src/ecs/SpriteComponent.h @@ -66,8 +66,8 @@ public: spriteType = sType; if(sType == spriteAnimation) { - std::string fullPath = Game::projPath + json; - std::ifstream fin(fullPath); + //std::string fullPath = Game::projPath + json; + std::ifstream fin(json); if(fin.fail()){ std::cerr<<"ERROR opening json file: " << json << std::endl; @@ -79,13 +79,15 @@ public: std::string aJson = tmp.str(); cJSON * animJson = cJSON_Parse(aJson.c_str()); std::cout << "animJson: " << std::endl; - //std::cout << animJson << std::endl; - //char * printOut = cJSON_Print(animJson); + std::cout << animJson << std::endl; + char * printOut = cJSON_Print(animJson); //std::cout << animJson << std::endl; cJSON * meta = cJSON_GetObjectItem(animJson, "meta"); cJSON * version = cJSON_GetObjectItem(animJson, "version"); cJSON * frameTags = cJSON_GetObjectItem(meta,"frameTags"); + cJSON * frames = cJSON_GetObjectItem(animJson, "frames"); int tagsCount = cJSON_GetArraySize(frameTags); + int framesCount = cJSON_GetArraySize(frames); //std::cout << "tagsCount: " << tagsCount << std::endl; //std::cout << "version: " << version << std::endl; const cJSON * aFrame = NULL; @@ -94,12 +96,19 @@ public: cJSON_ArrayForEach(aFrame, aFrames){ cJSON *filename = cJSON_GetObjectItemCaseSensitive(aFrame, "filename"); if (!cJSON_IsNumber(aFrame)){ - printf("Not a number\n"); + //printf("Not a number\n"); + //printf("Json filename: %s\n",filename); } else { - std::cout << "animation frame number: " << aFrame->valueint<< std::endl; + //std::cout << "animation frame number: " << aFrame->valueint<< std::endl; } } + for (int f = 0; fvaluestring; + std::cout << "Filename for frame is: " << fileName << std::endl; + } + for (int t = 0; t < tagsCount; t++) { cJSON * animItem = cJSON_GetArrayItem(frameTags,t); @@ -109,7 +118,7 @@ public: int toFrame = cJSON_GetObjectItem(animItem, "to")->valueint; Animation anim = Animation(fromFrame,toFrame,100); animations.emplace(name, anim); - std::cout << "Animation Name: " << name << std::endl; + std::cout << "Animation Name: " << name << "from: " << fromFrame << "to: " << toFrame << std::endl; Play(name); } } diff --git a/src/game/Game.cpp b/src/game/Game.cpp index 8c2f6a7..b37bd50 100644 --- a/src/game/Game.cpp +++ b/src/game/Game.cpp @@ -180,7 +180,8 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g //ecs implementation player.addComponent(150*gScale,100*gScale,32,32,globalScale,2); // 180,120 - player.addComponent("player", SpriteComponent::spriteAnimation, "assets/textures/actors/kaijuturtle.json"); + std::string playerJson = Game::projPath + "assets/textures/actors/kaijuturtle.json"; + player.addComponent("player", SpriteComponent::spriteAnimation, playerJson); // player.addComponent(0.0,0.0,false,false,Vector2D().Zero()); player.addComponent("player",20*globalScale,20*globalScale, true, 0*globalScale,0*globalScale, "");