Beginner Polish

I had a very productive session today.


I implemented a background first, in fitting with the theme, which can be viewed on my home page.

This background uses a turtle type approach (i didnt actually use turtle tho, because it's annoying with screen sizes and saving, so i remade a basic turtle in pygame myself). It starts from the centre, then goes forward a certain amount, and turn 91 degrees. The amount it goes forward increases each time, and the resulting shape is a spiral. By playing these images in a row with 2 degree differences in starting angle, it creates an effect that makes it look as if the background is constantly (or neverending-ly) spiralling into the centre screen.

Next I implemented some basic enemies. I made them as red cubes that constantly move toward the player, do damage when close enough, have invincibility frames of a 1/2 second, and an attack cooldown of a 1/2 second. The next thing i did was implement damage for these enemies, that when the player's sword comes into contact they take damage and get knocked into the air and in the direction away from the player, adding a nice bonus that if they fall off the map they die. They also die if they get hit enough times, and the border of their cube changes colour based on the invincibility frames.

The next thing i did was view ordering. I havent bothered to make the enemies not collide yet, but i can at least make them show in the correct order. In this isometric view you can sort drawing by y-x, lowest to highest, for the order, with an extra condition in this situation that falling enemies/player that is behind the map must be drawn before the map, and the rest drawn afterwards. I made a function to seperate all entities into two lists for these categorisations and in drawing order.

Then i made a main menu, with the buttons 'Play' (which i may change to continue to fit the theme more), 'Skills' and 'Blacksmith', adding a money counter, a level counter, an enemy kills/ enemy amount that shows when in round, and i plan to add an exp counter of some kind that will be used in the skills tab. I intend to give the player the ability to upgrade passive and active skills. Passive skills may be things like max health, movement speed, sword length, damage and so forth. Active may be things like a knockback 'burst' where all enemies around are knocked back , which i then implemented. An isometrically drawn circle shows the burst visually, and i plan to have some sort of icon indicating a cooldown when the ability is unlocked in the skills tab. Other active abilities could include a temporary shield, a temporary damage/health boost (beast mode lol), and maybe a full heal if its not OP.