Loading...
7
Game
Hensen Hopper
1 year ago

Okay, so I've gotten the functionality for the beetle shell render over the player working! (using the first 3 frames from the beetle shell collect animation as placeholder sprites, these ARE NOT the final sprites)


So I decided to scrap the methodology I had been going with and ranted about in my previous post. Instead of trying to have a script read an arbitrary integer and set the sprite of a SpriteRenderer component according to it's value, I have put together a relatively simple script that still sets the sprite of a SpriteRenderer according to an integer key value, however, it doesn't itself know what that key should be, another script has to tell it.

image.png

From here I simply attached this script to the beetle's sheild sprite renderer and the beetle shell overlay sprite renderer on the Player and set the sprite pairings via the inspector window.

image.png

This way, for the beetle shell graphical render, I can simply call SetSprite from the PlayerEffectsHandler's update method and pass the player's damage absorptions count in as Key.

image.png

For the beetle's sheild, I wrote a BeetleEffectsHandler script that extends the EntityEffectsHandler I was using before to handle the beetle's shield effects. Before this, I had written an EntityHealthEvent struct in the EntityEffectsHandler that invoked UnityEvents when the entity's health hit a certain value solely to handle the shield's damage states and the effects for when it breaks which felt gratuitous to me since 3 of the four events did ultimately the exact same thing with slight variations and this property was not used by any other entity.

image.png

A common piece of advise that's given to programmers who are just starting out is any time you find yourself writing structurally identical code repeatedly only with differences in the values being used, try to turn it into a function/method instead. I believe the same applies in this case only with UnityEvents (which, when all is said and done, are effectively method calls themselves). That being said I also have this personal philosophy that it's best to avoid using UnityEvents if you can because they can make narrowing down the source of bugs quite difficult sometimes so I usually seek solutions that do not incorporate them so you can take this paragrap with a grain of salt.



0 comments

Loading...

Next up

Close-up of the re-shaded Hensen!

I mentioned some time ago that I'd upgraded the shading on the beetle enemy's character art. Finally got around to putting together a before-after shot of that upgrade! This time, I made gifs for both!

Been working on the artwork for the "stage complete" screen all morning! Right now I'm improving the shadows/shading for Hensen because he is a part of that screen. I do need to work out the contrast between the text and the backdrop image, I know.

Doki Doki Literature Club is celebrating Monika's birthday and the 8th anniversary of DDLC with exclusive stickers, avatar frames and backgrounds on Game Jolt! 

Head over to the shop to collect yours 👉 https://gamejolt.com/#shop

I DID, in fact, get around to re-shading the art for the spider enemy by the way! The character sprites in Hensen feel a lot crisper as a whole now!

Happy #WIPWednesday! Are you working on a game? Making some art? Practicing a song? Something else? Tell us in the comments!

Okay, so the stages and score saving are both more or less working. Your score and high score will be saved throughout the lifetime of the application. Currently nothing saves when the game is closed, though, I'll be working on that next weekend.

Alright, I've been thinking... I wanna do a fly-off-screen when you complete a stage in Hensen Hopper (classic shmup stuff) and I COULD just hardcode it into the character controller script but I came up with a more nuanced solution.

Bandit Trap is Out Now!

Defend your home using inventive boobytraps as the Trapper, or team up as three sneaky Bandits and try to escape with the loot!

Quests inspired by the game are in your quest log now!

Check out the game: https://bit.ly/bandittraplaunch

IT'S WORKING! As far as I can tell, the player's score, high score, and difficulty are now all saved to and loaded from a Json file on the application's persistent data directory (which is in the user's program files directory on their computer)!