Python Platformer Tutorial | Animations, Sprites, Collisions, Jumping, Gravity...
Today, I'll be sharing how to build a platformer game in Python. This game will have pixel-perfect collision, animated characters, and much much more!
Thanks to Dice for sponsoring today’s video! When it comes to finding a job in tech, make things easier on yourself, and #LevelUpWithDice to help you find the right match! Check out the links below to start your journey with Dice.com.
Dice, where tech connects: bit.ly/3V6tR9Y
Career Events: bit.ly/3EiALlL
Ultimate Guide to a Successful Career in Tech: bit.ly/3tE4osV
Find Jobs: bit.ly/3V5qEHK
Assets and Completed Code: github.com/techwithtim/Python...
Pygame in 90 Minutes: • Pygame in 90 Minutes -...
Space Invaders in Pygame: • Pygame Tutorial - Crea...
How To Install Pygame (Mac/Linux): • How to Install Pygame ...
How To Install Pygame (Windows): • How to Install Pygame ...
💻 ProgrammingExpert is the best platform to learn how to code and become a software engineer as fast as possible! Check it out here: programmingexpert.io/tim and use code "tim" for a discount!
⭐️ Timestamps ⭐️
00:00:00 | Project Demo
00:02:41 | Project Brief/Getting Started
00:04:16 | Project Setup
00:05:27 | Asset Walkthrough
00:06:47 | Game Setup
00:12:06 | Generating The Background
00:19:24 | Creating The Player
00:28:48 | Moving The Player
00:32:29 | Adding Gravity
00:36:28 | Loading/Splitting Sprite Sheets
00:49:59 | Animating The Player
00:57:23 | Adding Terrain/Blocks
01:10:00 | Pixel Perfect Collision (Vertical)
01:15:57 | Jumping & Double Jumping
01:23:37 | Scrolling Background
01:29:02 | Pixel Perfect Collision (Horizontal)
01:37:25 | Adding Traps (Fire)
01:46:18 | Player Collision With Traps
01:52:00 | Conclusion
◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
👕 Merchandise: teespring.com/stores/tech-wit...
📸 Instagram: / tech_with_tim
📱 Twitter: / techwithtimm
⭐ Discord: / discord
📝 LinkedIn: / tim-ruscica-82631b179
🌎 Website: techwithtim.net
📂 GitHub: github.com/techwithtim
🔊 Podcast: anchor.fm/tech-with-tim
🎬 My KZread Gear: www.techwithtim.net/gear/
💵 One-Time Donations: www.paypal.com/donate?hosted_...
💰 Patreon: / techwithtim
◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
⭐️ Tags ⭐️
- Tech With Tim
- How To Make a Pygame
- Pygame Programming
⭐️ Hashtags ⭐️
#techwithtim #developer #python #pygame
Пікірлер: 179
What are your favourite types of games to make in Python??
@specialx9856
Жыл бұрын
TopDown RPG
@tried5736
Жыл бұрын
Thanks I really wanted to make a platformer game
@timon1816
Жыл бұрын
sandbox and simulation
@madhupappala2577
Жыл бұрын
Rpg top down
@muhammadmz8791
Жыл бұрын
first thank you a lot because of your tutorials then personally I came toward pygame after python tutorials, to learn how to program and more about python, then I will thank you a lot if you use all advance python topics in your pygame tutorials like decorators or multi-threading and processing and ... 🙏
This guy is pouring so much time into his videos to make it the best. Its absurd that these videos are not getting enough views. We should appreciate people like this. ❤️💯👍
As a beginner python coder: your tutorials help me so much. Keep making them!
Wow ! I managed to code along until the end. Fantastic content compressed into less than 2 hours ! Have taken away some points for further research. As always, thanks a lot for your time, Tim !
Thank you for the tutorial Tim ! Its incredible how you manage to simplify problems so it is easy to follow and understand
I went back to school to learn Python. Loving it so far! Thanks for the hard work. Subbed.
27 Minutes in, you just explained how you need to do all this stuff upfront, before you can explain it, but the brilliant part of that thoughtful consideration of yours is that, I'm completely tracking, following along, and I have a pretty good idea of why you're doing it this way. When I tried an earlier simpler tutorial, I used 'gravity' and 'shift' and an update loop, but didn't yet figure out I needed to determine direction, and played around with animation states equivalent to your animation frames. Figuring it out on my own for the first time. So validating to see I was on the right path, and you just cleared all the confusing noise and brush from that path and now I'm speeding along. Thank you, Tim. Amazing, simply Amazing, tutorial.
Incredible tutorial! Thanks.
Amazing video as always!
Thanks so much for making these tutorials! I’m definitely one of those “monkey see monkey do” learners and these are incredibly helpful for me
I will work really hard to expand on your amazing game using the assets you provided!
These videos are so underrated they help me so much and are so useful, please keep making them and never stop.
This simply deserves way more views
another amazing tutorial keep it up Tim!!!
I’m really excited to try this!!!
I appreciate your videos Tim! Thanks!
You're awesome, thanks for your hard work!
Great video, Tim!
For the algorithm and for my favorite coder on yt! Danke.
Comment for the algorithm!
@emmang2010
Жыл бұрын
Comment
@srqubit9480
Жыл бұрын
For the algorithm!
@joshmaclean8206
Жыл бұрын
Hail the algorithm!
@eyeofcthulhu526
Жыл бұрын
@@____unknown_____ what 💀
Thank you for another masterpiece.
@TechWithTim
Жыл бұрын
Thanks for the comment!
I love this man I have watched all his python videos and his just amazing
Dude, you're insane. Thank you
Hi Tim! Thanks so much for this I'm excited to get started on it. I was trying to download all the assets from the Github first and for the enemies there's a PNG that says "link on the project page" but I can't see to find that.
You are my inspo!
Love the video man. I had so many questions I would looking for the answer to online and you helped me figure it all out. Great work, you're helping so many people.
@uno3688
Жыл бұрын
help why does mine get error on the draw(window, background, bg_image) part??
@danyalahmed3995
Жыл бұрын
@@uno3688 I also get an error when I try to add player, it says AttribueError:'Player' object has no Attribute 'draw' and I followed the video 100% up to that point
@uno3688
Жыл бұрын
@@danyalahmed3995 ty, another problem is that I don't use folders like his bcs I just downloaded one bg
@ankithg3101
Жыл бұрын
@@uno3688 you have to add ,player (after bg_image)
Great intro and tutorial. Thanks so much :)
@TechWithTim
Жыл бұрын
Glad you liked it!
Thanks I have learned a lot of pygame watching and copying your video now I can create my own game
Great tutorial! As a sort of beginner, this was still easy enough to follow. Though some things are still a bit lost on me, like how they actually work. Was thinking of going through most of the stuff in the code and trying to add comments describing what is going on to get a bettter grasp. Edit. my engrish sucks more than I thought
Great Video - quick question - where do you go to get the pngs for all the assests or how can i create my own?
I did it! typed the whole thing. Pretty neat.
Hi I have a question, while moving the character and it staying in idle it bounces up and down. Is there a way to fix it?
I'm 01:40 into this video, and I am freaking excited about this!!!! I have a really cool idea for a platformer and I'm hoping this will help me realise it :]
will follow this tomorrow
Thank u sm!
Thanks for the video! I've gotten through everything except for adding the fire. When I run the code for the Fire class, it says there is a key error for 'off' based from the line __init__ self.image = self.fire["off"][0]. Any ideas how to fix it?
Thank you friend
Thank you very much for that video. Can I use that code and assets in my commercial project? Thank you
Very Nice Video 👍👍
@TechWith Tim First off your amazing and have helped me learn a lot with python , but quick question in your def handle_vertical_collision you make a list with collided_objects but you never go back and reference the list would you be able to explain why, and what is the purpose off appending to the list ?
Glad I found this.
Hi tim i am from Pakistan and i follow you since last 1 year and your tutorial is good and i learn from many thing in python
You are my favorite coding youtuber
thanks for all video
Insane brother
wow huge work
GREAT JOB!!!!!!!!!!!!!!!!!
Top ! Thanks
Okay so i did everything but for each block i make i have to copy and paste the line of code he showed so i was wondering if there's any less of a tedious way to make blocks.
Thanks a lot! To continue, the best way to create (design) the levels for this exact game would be a csv file with the map, where each character translates to a sprite/tile... Because we need an easy way to place the blocks. Let's say a level has 200 x 10 blocks... so we need a csv file with 100 columns and 10 rows... import it and relate it to the tiles.
When I make my own sprite PNGs with Photoshop I keep getting error 'pygame.error: Unsupported image format' It works just with yours. How did you make them? What's the catch? Thanks
great video and easy to follow!! I can not seem to find the link for all 20 enemies that are mentioned on an image in the asset folder? do you have the link for this?
@TechWithTim
Жыл бұрын
It’s on the GitHub!
you have constant size of the window, but what if I need to set it differently for each level of the game? since "window" is parameter of the main function, I don't see any way how to change it inside main game loop :(
Can you make a video on how to do more levels and how to add stuff in to the platformer
thanks!
My man, you are a real one that saved my mind from disintegrating ❤
Hello, i was wondering is there a way to change how the player character looks?
how can i make the background move with parallax effect? im new to programming and dont know much, Thankk you!
Good job
Thanks a big fan! ***Humble request, please put tutorial for pytest as well 🙏
This is amazing for learning. Thank you for your time! :) I have a question: Is this the way code and classes are organized in python in general? I have 40k+ hours experience in php and am a technical lead. And for my taste this could use some cleaning.
Great work Tim! Any plan on doing some game project using Godot? Its syntax is really similar to Python..but the game engine is much more powerful than Pygame.
Excellent tutorial, could you add enemies in a next video?
Hello. I like your video. I think there is a bug in this program. When player is hitted doesn't work horizontal collide.
How exactly do u change the sprites to our liking?
Im currently getting a problem of type error module object is not callable. When i was creating the player i did everything same as 28:32
Could you make a tutorial on how to use Tilemap Editor with Python?
How do you create multiple flames in your platformer, if I try to make a list just like blocks it gives me an error
i have a problem in line player=Player(100,100,50,50). it says that "pygame.sprite.Sprite.add() argument after * must be an iterable, not int" how to fix it
@mostlyLK
Жыл бұрын
same! did u figure it out?
I am getting unsupported image format error (using the provided png files) while creating the background (time 13:03) function (def get_background).
There is a very tricky bug in your code - running animation consists of jump phase and landing phase, and in jumping phase sprite collision detects that he is not touching block and start falling - increase Y position. Then in landing phase you get a collision just by change to next sprite, and this treated by X movement as a collision, and code doesn't change X position. This is easy to see, if you add delay when get X collision, and run left and right.
@blackpanda3405
7 ай бұрын
yea if you spam jump button you will stay in air and even go up if you are fast and how do you fix it ?
@nikolaysavinov1891
7 ай бұрын
@@blackpanda3405 I've uploaded my version of this platformer on GH, user Nick507
I'm just making my first pygame project and was wondering - can I create a separate class for a main loop? I saw someone's code written that way but then someone else advised me that it's not recommended.
@timchat9_my_teleqram_id
Жыл бұрын
Teleqram me 👆⬆️…
Real Nice...
hello, I fixed the error at the end of loading sprite sheets but still it couldnt load i tried saving but it still didnt work
Hi! i need help. In the chapter loading & splitting sprite sheets i got the same Error: "self.sprite = self.SPRITES['idle_' + self.direction][0] KeyError: 'idle_left'". My def of moving in both direction are ok. have anyone an idea? i am a newbie and google don't help :D
Your Dice link in the description via bitly isn't working
I can't load background image because it said FileNotFoundError: No file 'assets\Background\Gray.png' found in working directory Pls help me on that. Thank you so much for your help
Pls if possible can you make tutorial or hint on how to make a level editor for this game🙏🙏🙏🙏🙏🙏🙏
I am already getting errors at 31:57 which is stating the error: self.rect.x += dx TypeError: unsupported operand type(s) for +=: 'getset_descriptor' and 'int'
Big fan
Nice
When scrolling the background my blocks move but the collisions don't detect it, any ideas?
i love python!!!!!!!
my pyame is showing import pygame could not be resolved?
[WinError 3] The system cannot find the path specified, this error is coming pls tell what to do
Thank you for your interesting video. It is amazing. Can I translate it into my Uzbek language. It would be for those who don't know English. If you permit I will write who is the author of the video and from which channel it is taken. Can I do it?
It says i got an invalid syntax on line 1. i typed in: import os
thank you for the tutorials that you do. your A* star algorithm helped me a lot but one question, why you use pygame instead of raylib it has a python binding and as far as i heard its better
Where are the sound assets?
What platform did you use for coding in this video???
@sahildas.
6 ай бұрын
visual studio code with a different theme
1:43:34 my program still tells me that the list index is out of range but my code is identical, anyone else have this problem?
@jtiguy9375
Жыл бұрын
Now i can not collide with the top of the fire after drawing it now i have solved the issue.
Cool
Why doesn't my player flip but I don't get any errors in the code? tell me what's wrong please
I have python 3.11 installed and to pip pygame i need 3.10, is anything will happen if i download and use both versions?
@timchat9_my_teleqram_id
Жыл бұрын
Teleqram me 👆⬆️…
how calls this theme?
Great vid bro! But I couldn't understand how the sprite creating works. I would love if anyone explained it to me in the comments section
I'm stumped. Tim's backgrounds are working perfectly and my background remains black. when I click the ❌ to quit, my chosen background is revealed briefly as the window collapses. Its loading the correct image but isn't drawing until after I quit. EDIT! As I was writing out the 'problem' I got an inkling of the solution: I had the indentation fubar'd. tabbed the draw call right once and voila! Now I can continue! Tim moves around so well in the editor that it's critical for me to pay close attention as the indention isn't 2nd nature to me, yet.
cool
I love your videos. Can you make a pokemon game pls
your channel is pretty!