vlod 6 months ago
parent
commit
b9db379f0f

+ 43 - 8
Pika/gameplay/containers/silksong/silkSong.h

@@ -18,8 +18,8 @@ struct SilkSong: public Container
 {
 
 	gl2d::Renderer2D renderer;
-	gl2d::Texture sprites;
-	gl2d::TextureAtlasPadding atlas;
+	gl2d::Texture hornetSprite;
+	gl2d::TextureAtlasPadding hornetAtlas;
 	gl2d::FrameBuffer fbo;
 
 	b2World world{{0, 10}};
@@ -284,8 +284,8 @@ struct SilkSong: public Container
 
 
 
-		sprites = pika::gl2d::loadTextureWithPixelPadding(PIKA_RESOURCES_PATH "hollowknight/sprites.png", requestedInfo, 80);
-		atlas = gl2d::TextureAtlasPadding(12, 12, sprites.GetSize().x, sprites.GetSize().y);
+		hornetSprite = pika::gl2d::loadTextureWithPixelPadding(PIKA_RESOURCES_PATH "hollowknight/hornet.png", requestedInfo, 249);
+		hornetAtlas = gl2d::TextureAtlasPadding(8, 1, hornetSprite.GetSize().x, hornetSprite.GetSize().y);
 
 		world.SetAllowSleeping(true);
 		world.SetContinuousPhysics(true);
@@ -537,8 +537,31 @@ struct SilkSong: public Container
 			//player
 			if (i == 3)
 			{
-				renderer.renderRectangle(character.getRenderPos(), sprites, Colors_White, {}, 0, 
-					atlas.get(0, 0, movingLeft));
+				if (direction == 0)
+				{
+
+					renderer.renderRectangle(character.getRenderPos(), hornetSprite, Colors_White, {}, 0,
+						hornetAtlas.get(0, 0, !movingLeft));
+				}
+				else
+				{
+					static int animationPosition = 1;
+					static float animationTimer = 0;
+					
+					animationTimer += input.deltaTime;
+					if (animationTimer > 0.33)
+					{
+						animationTimer -= 33;
+						animationPosition++;
+					}
+					if (animationPosition >= 8) { animationPosition = 1; }
+
+
+					renderer.renderRectangle(character.getRenderPos(), hornetSprite, Colors_White, {}, 0,
+						hornetAtlas.get(animationPosition, 0, !movingLeft));
+				}
+
+
 			}
 
 			int index = 0;
@@ -550,7 +573,7 @@ struct SilkSong: public Container
 					if (currentSelectedSprite == index && selectType == 2)
 					{
 						renderer.renderRectangle({glm::vec2(s.pos), glm::vec2(assets[s.type].GetSize()) * s.scale * (1.f / 400.f)},
-							assets[s.type], {1,0.7,0.7,1.0}, {}, s.rotation, s.flip ? glm::vec4(1, 1, 0, 0) : glm::vec4(0, 1, 1, 0), s.pos.z);
+							assets[s.type], glm::mix(glm::vec4{1,0.7,0.7,1.0}, s.color, 0.5f), {}, s.rotation, s.flip ? glm::vec4(1, 1, 0, 0) : glm::vec4(0, 1, 1, 0), s.pos.z);
 					}
 					else
 					{
@@ -816,7 +839,15 @@ struct SilkSong: public Container
 					currentSelectedSprite = gameSprites.size() - 1;
 				}
 
-				if (currentSelectedSprite > 0 && currentSelectedSprite < gameSprites.size())
+				if (currentSelectedSprite >= 0 && currentSelectedSprite < gameSprites.size())
+				if (ImGui::Button("Duplicate Sprite"))
+				{
+					auto s = gameSprites[currentSelectedSprite];
+					gameSprites.push_back(s);
+					currentSelectedSprite = gameSprites.size() - 1;
+				}
+
+				if (currentSelectedSprite >= 0 && currentSelectedSprite < gameSprites.size())
 				if (ImGui::Button("Remove sprite"))
 				{
 					gameSprites.erase(gameSprites.begin() + currentSelectedSprite);
@@ -882,8 +913,12 @@ struct SilkSong: public Container
 			ImGui::End();
 		}
 
+		//renderer.pushCamera3D();
+		//renderer.pushCamera();
 		//renderer.renderRectangle({0,0, renderer.windowW, renderer.windowH}, fbo.texture);
 		//renderer.flushFBO(gl2d::FrameBuffer{requestedInfo.requestedFBO.fbo});
+		//renderer.popCamera();
+		//renderer.popCamera3D();
 
 		//requestedInfo.writeEntireFileBinary(PIKA_RESOURCES_PATH "hollowknight/inputMetrics.bin",
 		//	&inputMetrics, sizeof(inputMetrics));

BIN
Pika/resources/hollowknight/hornet.png


BIN
Pika/resources/hollowknight/map21.bin


BIN
Pika/resources/hollowknight/map22.bin


+ 8 - 8
Pika/resources/logs.txt

@@ -1,8 +1,8 @@
-#2025-06-06 16:00:00[error]: Error reading map file
-#2025-06-06 16:00:00: Created container: SilkSong
-#2025-06-06 16:00:21: Destroyed continer: SilkSong #1
-#2025-06-06 16:01:00[warning]: Couldn't reloaded dll
-#2025-06-06 16:01:02: Reloaded dll
-#2025-06-06 16:01:05[error]: Error reading map file
-#2025-06-06 16:01:05: Created container: SilkSong
-#2025-06-06 16:01:56: Destroyed continer: SilkSong #2
+#2025-06-06 17:44:36[error]: Error reading map file
+#2025-06-06 17:44:36: Created container: SilkSong
+#2025-06-06 18:06:21: Destroyed continer: SilkSong #1
+#2025-06-06 18:08:17[warning]: Couldn't reloaded dll
+#2025-06-06 18:08:20: Reloaded dll
+#2025-06-06 18:08:45[error]: Error reading map file
+#2025-06-06 18:08:45: Created container: SilkSong
+#2025-06-06 18:09:32: Destroyed continer: SilkSong #2