Тёмный

Python Platformer Tutorial | Animations, Sprites, Collisions, Jumping, Gravity... 

Tech With Tim
Подписаться 1,6 млн
Просмотров 116 тыс.
50% 1

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 RU-vid 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

Опубликовано:

 

8 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 182   
@TechWithTim
@TechWithTim Год назад
What are your favourite types of games to make in Python??
@specialx9856
@specialx9856 Год назад
TopDown RPG
@tried5736
@tried5736 Год назад
Thanks I really wanted to make a platformer game
@timon1816
@timon1816 Год назад
sandbox and simulation
@madhupappala2577
@madhupappala2577 Год назад
Rpg top down
@muhammadmz8791
@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 ... 🙏
@rachinter
@rachinter Год назад
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. ❤️💯👍
@thoserandomshredders
@thoserandomshredders Год назад
As a beginner python coder: your tutorials help me so much. Keep making them!
@ArunManivannan
@ArunManivannan Год назад
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 !
@chesslife5640
@chesslife5640 Год назад
Thank you for the tutorial Tim ! Its incredible how you manage to simplify problems so it is easy to follow and understand
@MrTactics26
@MrTactics26 Год назад
I went back to school to learn Python. Loving it so far! Thanks for the hard work. Subbed.
@JeraWolfe
@JeraWolfe Год назад
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.
@Ismail_Dagli
@Ismail_Dagli Год назад
Comment for the algorithm!
@emmang2010
@emmang2010 Год назад
Comment
@srqubit9480
@srqubit9480 Год назад
For the algorithm!
@joshmaclean8206
@joshmaclean8206 Год назад
Hail the algorithm!
@eyeofcthulhu526
@eyeofcthulhu526 Год назад
@@____unknown_____ what 💀
@samanthaecotothermia7896
@samanthaecotothermia7896 Год назад
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
@shivenlak
@shivenlak Год назад
These videos are so underrated they help me so much and are so useful, please keep making them and never stop.
@Funky_Mode
@Funky_Mode Год назад
I will work really hard to expand on your amazing game using the assets you provided!
@emmang2010
@emmang2010 Год назад
Amazing video as always!
Год назад
Incredible tutorial! Thanks.
@cjn9ne
@cjn9ne Год назад
This simply deserves way more views
@CarloObrad
@CarloObrad Год назад
another amazing tutorial keep it up Tim!!!
@Vanukass
@Vanukass Год назад
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
@Dice
@Dice Год назад
Great video, Tim!
@Dave-DIY
@Dave-DIY Год назад
For the algorithm and for my favorite coder on yt! Danke.
@delltoid5980
@delltoid5980 Год назад
I’m really excited to try this!!!
@mathew1855
@mathew1855 Год назад
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
@uno3688 Год назад
help why does mine get error on the draw(window, background, bg_image) part??
@danyalahmed3995
@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
@uno3688 Год назад
@@danyalahmed3995 ty, another problem is that I don't use folders like his bcs I just downloaded one bg
@ankithg3101
@ankithg3101 Год назад
@@uno3688 you have to add ,player (after bg_image)
@zGuii99z
@zGuii99z Год назад
You're awesome, thanks for your hard work!
@bloxanim8444
@bloxanim8444 Год назад
I love this man I have watched all his python videos and his just amazing
@graysenbowman9376
@graysenbowman9376 7 месяцев назад
I appreciate your videos Tim! Thanks!
@seanyB0123
@seanyB0123 6 месяцев назад
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 :]
@Gay338
@Gay338 Год назад
Dude, you're insane. Thank you
@MDonteMoore
@MDonteMoore Год назад
Thank you for another masterpiece.
@TechWithTim
@TechWithTim Год назад
Thanks for the comment!
@cotekokotrees1527
@cotekokotrees1527 Год назад
Thanks I have learned a lot of pygame watching and copying your video now I can create my own game
@samplaying4keeps
@samplaying4keeps Год назад
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.
@TheTeleportingProgrammer
@TheTeleportingProgrammer Год назад
You are my inspo!
@Ashir1
@Ashir1 Год назад
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
@daveruble5150
@daveruble5150 Год назад
I did it! typed the whole thing. Pretty neat.
@anuperera174
@anuperera174 4 месяца назад
Thank u sm!
@Confuciuss
@Confuciuss Год назад
will follow this tomorrow
@smanzoli
@smanzoli Год назад
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.
@paulthomas1052
@paulthomas1052 Год назад
Great intro and tutorial. Thanks so much :)
@TechWithTim
@TechWithTim Год назад
Glad you liked it!
@punuravathsara
@punuravathsara Год назад
Very Nice Video 👍👍
@TheBl4ckPe4rl
@TheBl4ckPe4rl 2 месяца назад
Thank you friend
@Ivan-hj8li
@Ivan-hj8li Год назад
Insane brother
@aunrizvi8063
@aunrizvi8063 Год назад
You are my favorite coding youtuber
@3lite6am3r
@3lite6am3r Год назад
My man, you are a real one that saved my mind from disintegrating ❤
@boolean0_046
@boolean0_046 Год назад
GREAT JOB!!!!!!!!!!!!!!!!!
@pietraderdetective8953
@pietraderdetective8953 Год назад
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.
@linsieharris7041
@linsieharris7041 11 месяцев назад
Glad I found this.
@tcgvsocg1458
@tcgvsocg1458 Год назад
wow huge work
@myJapanTV013
@myJapanTV013 Год назад
Thanks a big fan! ***Humble request, please put tutorial for pytest as well 🙏
@user-jx1ke4ek1g
@user-jx1ke4ek1g 3 месяца назад
Excellent tutorial, could you add enemies in a next video?
@-Barny
@-Barny 7 месяцев назад
Thank you very much for that video. Can I use that code and assets in my commercial project? Thank you
@kenjik8736
@kenjik8736 Год назад
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?
@saadedi75
@saadedi75 Год назад
thanks for all video
@dmkanz
@dmkanz Год назад
Great Video - quick question - where do you go to get the pngs for all the assests or how can i create my own?
@nikratlehead
@nikratlehead Год назад
Top ! Thanks
@eradboi
@eradboi Год назад
Good job
@nikolaysavinov1891
@nikolaysavinov1891 Год назад
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
@blackpanda3405 8 месяцев назад
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
@nikolaysavinov1891 8 месяцев назад
@@blackpanda3405 I've uploaded my version of this platformer on GH, user Nick507
@Gilmore_Coding
@Gilmore_Coding 11 месяцев назад
@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 ?
@musicfan4952
@musicfan4952 Год назад
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.
@GeikoTreyarch
@GeikoTreyarch 16 дней назад
I have a question: Where is the rest of the enemy sprites? I looked on github and could not find the spritesheet? Love your videos especially the pygame ones. Thumbs up and subscribed!
@stefano_er
@stefano_er Год назад
thanks!
@eurosat7
@eurosat7 Год назад
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.
@Goobersfrrrr
@Goobersfrrrr Год назад
Can you make a video on how to do more levels and how to add stuff in to the platformer
@tomcotom8
@tomcotom8 Год назад
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
@georgeenticknap4216
@georgeenticknap4216 Год назад
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
@TechWithTim Год назад
It’s on the GitHub!
@Fahim_Uchiha416
@Fahim_Uchiha416 Год назад
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
@arnoldnyasetia4798
@arnoldnyasetia4798 Год назад
Big fan
@lolducks
@lolducks Год назад
Hello, i was wondering is there a way to change how the player character looks?
@SkyFly19853
@SkyFly19853 Год назад
Could you make a tutorial on how to use Tilemap Editor with Python?
@atracom71slavyansk4
@atracom71slavyansk4 Год назад
Hello. I like your video. I think there is a bug in this program. When player is hitted doesn't work horizontal collide.
@ondrasuchanek6467
@ondrasuchanek6467 Год назад
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 :(
@Boogie-wi7hd
@Boogie-wi7hd 6 месяцев назад
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
@SkyFly19853
@SkyFly19853 Год назад
Real Nice...
@atarimae7718
@atarimae7718 Год назад
how can i make the background move with parallax effect? im new to programming and dont know much, Thankk you!
@Oybekjon_Nuriddinov
@Oybekjon_Nuriddinov 10 месяцев назад
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?
@fanboieditz
@fanboieditz Год назад
How do you create multiple flames in your platformer, if I try to make a list just like blocks it gives me an error
@sofixfan_limlight
@sofixfan_limlight Год назад
i love python!!!!!!!
@daveruble5150
@daveruble5150 Год назад
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.
@Clendy321
@Clendy321 Год назад
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
@trivu5022
@trivu5022 Год назад
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
@mostlyLK Год назад
same! did u figure it out?
@sofixfan_limlight
@sofixfan_limlight Год назад
your channel is pretty!
@ethanlee4976
@ethanlee4976 Год назад
I love your videos. Can you make a pokemon game pls
@God_Bananna
@God_Bananna Год назад
How exactly do u change the sprites to our liking?
@johnpayne9265
@johnpayne9265 Месяц назад
I am getting unsupported image format error (using the provided png files) while creating the background (time 13:03) function (def get_background).
@chikwendumiracle2737
@chikwendumiracle2737 Год назад
Nice
@HenryTSBs
@HenryTSBs 10 месяцев назад
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
@boxhead-zk7sn
@boxhead-zk7sn 4 месяца назад
Pls if possible can you make tutorial or hint on how to make a level editor for this game🙏🙏🙏🙏🙏🙏🙏
@katiedevinney4872
@katiedevinney4872 Год назад
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?
@felipeesmanhotto2331
@felipeesmanhotto2331 24 дня назад
A bit late but it seems putting a dot at the end of the strings works. self.image = self.fire["off."][0] self.animation_name = 'on.'
@user-nf1qq3pt3c
@user-nf1qq3pt3c 4 месяца назад
It says i got an invalid syntax on line 1. i typed in: import os
@MateuszBanach-eb3zl
@MateuszBanach-eb3zl Год назад
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
@timchat9_my_teleqram_id Год назад
Teleqram me 👆⬆️…
@noxiusphant9360
@noxiusphant9360 Год назад
Why doesn't my player flip but I don't get any errors in the code? tell me what's wrong please
@jtiguy9375
@jtiguy9375 Год назад
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
@jtiguy9375 Год назад
Now i can not collide with the top of the fire after drawing it now i have solved the issue.
@tomlee6534
@tomlee6534 Год назад
my pyame is showing import pygame could not be resolved?
@aliyousif8765
@aliyousif8765 Год назад
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
@jotaframo
@jotaframo Год назад
When scrolling the background my blocks move but the collisions don't detect it, any ideas?
@avgrobloxanimator
@avgrobloxanimator Год назад
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'
@ndjndxs7285
@ndjndxs7285 Год назад
Your Dice link in the description via bitly isn't working
@shauryananda9905
@shauryananda9905 Год назад
[WinError 3] The system cannot find the path specified, this error is coming pls tell what to do
@inko567
@inko567 Год назад
I'm happy
@nancytran7336
@nancytran7336 Год назад
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
@shenzmao
@shenzmao Год назад
Cool
@WhatsNextFam
@WhatsNextFam 11 месяцев назад
It says player_vel is not defined im getting a name error someone please help
@thebigc1462
@thebigc1462 Год назад
1:09:30
@johnniegilkerson4724
@johnniegilkerson4724 Год назад
Where are the sound assets?
Далее
Make Pong With Python!
1:12:42
Просмотров 114 тыс.
Please Master These 10 Python Functions…
22:17
Просмотров 117 тыс.
Mansan oshdi😅
00:22
Просмотров 1,1 млн
Learn Python With This ONE Project!
55:04
Просмотров 1,7 млн
Pygame Tutorial - Creating Space Invaders
1:56:03
Просмотров 809 тыс.
How to Use Enumerate In PYTHON?!
1:36
Просмотров 897
The Truth About Learning Python in 2024
13:05
Просмотров 48 тыс.
3 Python Automation Projects - For Beginners
53:11
Просмотров 553 тыс.
Pygame in 90 Minutes - For Beginners
1:35:22
Просмотров 1 млн
How to ACTUALLY get into Gamedev
14:01
Просмотров 711 тыс.
Python As Fast as Possible - Learn Python in ~75 Minutes
1:19:41
5 Mini Python Projects - For Beginners
1:41:08
Просмотров 2,8 млн
2 Python Developers VS $1000
15:04
Просмотров 1,8 млн
Mansan oshdi😅
00:22
Просмотров 1,1 млн