2D Platformer written in python with pygame-ce.
Marcos Sardina
Check their project out: The Eternaut
Annabelle
Check their projects out: Murder Mystery, Murder Mystery
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
I tried uploading this to pypi so it could be installed for demo with pip, but it doesn't work and I've givien up after an hour - just recorded a demo video. If you do want to try the game, you can still clone the repo and install following the instructions on README.md!
Added a couple more things, like giving the shells the particle animation. And WE HAVE A NAME! (It's not the best but I'm not good at naming things). I'm going to ship this now as I think it's decently playable. Wish me luck!
I made the pearl bullets despawn after 5 seconds, or if they hit a wall or the player. If they hit the player it prints a message to the console, but will add actual damage later!
Added a shell / clam enemy that fires pearl projectiles. The projectiles have no effect yet and do not despawn!
Created a basic enemy that runs left and right. Also I set up a pyright lsp config file so I can stop typing #pyright: ignore when pyright doesn't like pygame!
Added a chain to the spike ball and fixed the position of it. (Also I switched for VSCode to NeoVim!)
YESS! I fixed the spike ball - turns out I had the closing brackets for the sin and cosine in the wrong place.
Added a spike ball that should spin in a circle around the center point, but it's not working correctly yet - I think I got the trigonometry wrong :(
Added palm trees (some have collision, some are background details) with animations. Also added some background detail sprites for a more lively level.
Added an indicator line to moving saws to show where they move to, and made the ship sprite flip when it changes direction. The game's looking good now!
Added player animations such as a jump animation, idle animation, attack animation and run animation. This is done by having a list of frames and increasing the index each time, while setting self.image to the list at index.
Added more sprites to the game, including some animated sprites such as the flag and the saw!
I added a camera that tracks the player (always keeping it in the center). This is done by adding an offset when drawing all the objects.
I don't know why SOM thinks I have to do a devlog, as I haven't changed anything since the last one, and when I posted the last one the time since devlog immediately updated to 28 minutes, so here's a picture of my git commits :)
I made the platforms semi collidable, so that you can jump up through them. Also made it so you can drop down through them if you press DOWN or S. This also fixed the issue with the player dropping through the platforms. There is currently an issue where you can stand inside the platforms though. Lastly, the vertical platform can actually push you into the other terrain, which is weird but kind of cool. I'll fix that later.
Added collisions to the moving platforms (but now sometimes the player falls through the vertical one slowly??)
Fixed jumping while standing next to a wall with another timer, and then began to implement moving platforms. I took way too long debugging the placement of the test boxes for this unfortunately, but it's working now!!
Finally got the wall jumps working! I'm using a timer to block left/right user input for about 300ms after each wall jump!
Honestly I spent the last hour and a bit just de-bugging one thing. After changing some of the collision checks to implement wall jumps (for now it's just wall slides), I somehow butchered the jump so I couldn't jump at all. I thought I'd fixed it but it just caused more problems. Turns out the solution was to call the collision check function BEFORE the jump, so that the y velocity is not reset immediately after jumping.
I added JUMPS!! You can now jump if the character is touching the floor. Next I'll be implementing wall jumps :)!
Added gravity and collisions to the game! The collision checks are separated: first it checks left/right, then up/down.
Added a player that uses inheritance from the sprite class. Added movement to the player that is normalized.
I started over (last time I promise!) so that I could follow a more up-to-date tutorial - this one's by Clear Code. So far I have a basic level (with no collision yet) and a sprite class.
Added physics entity class that accepts the groups for sprite groups, as well as a position for the FRect. Added a test entity to the game to test the init and update function, which currently moves the entity across the screen.
Started the project again so that I can follow a tutorial to start off with and expand after the basics such as the level, player & camera are finished.
Created the window with pygame-ce. Set up the structure for player & main file. Have added left and right movement and got a player sprite (which I'm going to change for something else later) from kenney assets. Next I plan to add a floor for the player. I'll also have to learn how to have a 'camera' to follow the player sprite.