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

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ •

  • @TechWithTim
    @TechWithTim  2 роки тому +46

    What are your favourite types of games to make in Python??

    • @specialx9856
      @specialx9856 2 роки тому +11

      TopDown RPG

    • @tried5736
      @tried5736 2 роки тому

      Thanks I really wanted to make a platformer game

    • @timon1816
      @timon1816 2 роки тому +3

      sandbox and simulation

    • @madhupappala2577
      @madhupappala2577 2 роки тому +2

      Rpg top down

    • @muhammadmz8791
      @muhammadmz8791 2 роки тому

      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 2 роки тому +48

    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 Рік тому +10

    As a beginner python coder: your tutorials help me so much. Keep making them!

  • @cjn9ne
    @cjn9ne 2 роки тому +4

    This simply deserves way more views

  • @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.

  • @MrTactics26
    @MrTactics26 2 роки тому +7

    I went back to school to learn Python. Loving it so far! Thanks for the hard work. Subbed.

  • @Dice
    @Dice 2 роки тому +3

    Great video, Tim!

  • @Ismail_Dagli
    @Ismail_Dagli 2 роки тому +43

    Comment for the algorithm!

  • @ArunManivannan
    @ArunManivannan Рік тому +2

    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 !

  • @samanthaecotothermia7896
    @samanthaecotothermia7896 2 роки тому +9

    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

  • @chesslife5640
    @chesslife5640 2 роки тому +7

    Thank you for the tutorial Tim ! Its incredible how you manage to simplify problems so it is easy to follow and understand

  • @arkie87
    @arkie87 Рік тому +1

    35:11 FYI that is not how gravity/acceleration works. You are over complicating it. Gravity does not increase the velocity by more the longer it is falling. The acceleration is constant, meaning the velocity increases by a constant value each time step.

  • @MDonteMoore
    @MDonteMoore 2 роки тому +5

    Thank you for another masterpiece.

  • @emmang2010
    @emmang2010 2 роки тому +4

    Amazing video as always!

  • @Dave-DIY
    @Dave-DIY 2 роки тому +1

    For the algorithm and for my favorite coder on yt! Danke.

  • @aunrizvi8063
    @aunrizvi8063 Рік тому

    You are my favorite coding youtuber

  • @shivenlak
    @shivenlak Рік тому

    These videos are so underrated they help me so much and are so useful, please keep making them and never stop.

  •  2 роки тому +4

    Incredible tutorial! Thanks.

  • @ArchonHimitsu
    @ArchonHimitsu 2 роки тому +1

    I will work really hard to expand on your amazing game using the assets you provided!

  • @nikolaysavinov1891
    @nikolaysavinov1891 Рік тому +3

    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 Рік тому +3

      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 Рік тому

      @@blackpanda3405 I've uploaded my version of this platformer on GH, user Nick507

  • @Ashir1
    @Ashir1 2 роки тому +1

    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

  • @seanyB0123
    @seanyB0123 10 місяців тому

    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 :]

  • @dommafia
    @dommafia 2 місяці тому

    What a great tutorial, si much packed into a short video (all things considered)

  • @Vanukass
    @Vanukass 2 роки тому +2

    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

  • @mathew1855
    @mathew1855 Рік тому +1

    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 Рік тому +1

      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)

  • @TheTeleportingProgrammer
    @TheTeleportingProgrammer 2 роки тому +1

    You are my inspo!

  • @delltoid5980
    @delltoid5980 Рік тому

    I’m really excited to try this!!!

  • @anuperera174
    @anuperera174 8 місяців тому +1

    Thank u sm!

  • @musicfan4952
    @musicfan4952 Рік тому +3

    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 4 місяці тому +1

    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!

  • @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.

  • @Boogie-wi7hd
    @Boogie-wi7hd 10 місяців тому +1

    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

  • @daveruble5150
    @daveruble5150 Рік тому

    I did it!
    typed the whole thing.
    Pretty neat.

  • @bloxanim8444
    @bloxanim8444 Рік тому +1

    I love this man I have watched all his python videos and his just amazing

  • @3lite6am3r
    @3lite6am3r Рік тому

    My man, you are a real one that saved my mind from disintegrating ❤

  • @daveruble5150
    @daveruble5150 Рік тому +1

    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.

  • @cotekokotrees1527
    @cotekokotrees1527 Рік тому

    Thanks I have learned a lot of pygame watching and copying your video now I can create my own game

  • @Fahim_Uchiha416
    @Fahim_Uchiha416 Рік тому +1

    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

  • @CarloObrad
    @CarloObrad 2 роки тому

    another amazing tutorial keep it up Tim!!!

  • @Mango-Fun
    @Mango-Fun 10 місяців тому +2

    To all of the slow typers out there i feel you

  • @samplaying4keeps
    @samplaying4keeps 2 роки тому +5

    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.

  • @Dump_FF
    @Dump_FF 2 місяці тому

    Can I use the gif image in the back ground to make it more good???

  • @tomcotom8
    @tomcotom8 2 роки тому +1

    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

  • @pietraderdetective8953
    @pietraderdetective8953 2 роки тому +6

    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.

  • @Confuciuss
    @Confuciuss 2 роки тому

    will follow this tomorrow

  • @dmkanz
    @dmkanz Рік тому +1

    Great Video - quick question - where do you go to get the pngs for all the assests or how can i create my own?

  • @zGuii99z
    @zGuii99z 2 роки тому

    You're awesome, thanks for your hard work!

  • @atracom71slavyansk4
    @atracom71slavyansk4 Рік тому +1

    Hello. I like your video. I think there is a bug in this program. When player is hitted doesn't work horizontal collide.

  • @linsieharris7041
    @linsieharris7041 Рік тому

    Glad I found this.

  • @3dblendermodeler
    @3dblendermodeler 7 місяців тому

    Excellent tutorial, could you add enemies in a next video?

  • @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

  • @kenjik8736
    @kenjik8736 2 роки тому +1

    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?

  • @johnpayne9265
    @johnpayne9265 5 місяців тому

    I am getting unsupported image format error (using the provided png files) while creating the background (time 13:03) function (def get_background).

  • @HenryTSBs
    @HenryTSBs Рік тому

    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

  • @rip_f4kee
    @rip_f4kee Рік тому

    classical tim, completely misspelling every text in the middle of a tutorial ☕

  • @TheBl4ckPe4rl
    @TheBl4ckPe4rl 6 місяців тому

    Thank you friend

  • @jotaframo
    @jotaframo Рік тому

    When scrolling the background my blocks move but the collisions don't detect it, any ideas?

  • @justhamza_3344
    @justhamza_3344 2 місяці тому

    did you create pix builder game for samsung smart tv

  • @Ivan-hj8li
    @Ivan-hj8li Рік тому

    Insane brother

  • @MelinaSaaid
    @MelinaSaaid 22 дні тому

    how can i edit the background, characters and all that???

  • @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'

  • @paulthomas1052
    @paulthomas1052 2 роки тому

    Great intro and tutorial. Thanks so much :)

  • @Gilmore_Coding
    @Gilmore_Coding Рік тому

    @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 ?

  • @noxiusphant9360
    @noxiusphant9360 Рік тому

    Why doesn't my player flip but I don't get any errors in the code? tell me what's wrong please

  • @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

  • @atarimae7718
    @atarimae7718 Рік тому

    how can i make the background move with parallax effect? im new to programming and dont know much, Thankk you!

  • @-Barny
    @-Barny 11 місяців тому

    Thank you very much for that video. Can I use that code and assets in my commercial project? Thank you

  • @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 :(

  • @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.

  • @MelinaSaaid
    @MelinaSaaid 22 дні тому

    can i use Pycharn too?? instead of visual code

  • @jtiguy9375
    @jtiguy9375 Рік тому +1

    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.

  • @God_Bananna
    @God_Bananna Рік тому

    How exactly do u change the sprites to our liking?

  • @lolducks
    @lolducks Рік тому

    Hello, i was wondering is there a way to change how the player character looks?

  • @shauryananda9905
    @shauryananda9905 Рік тому

    [WinError 3] The system cannot find the path specified, this error is coming pls tell what to do

  • @trivu5022
    @trivu5022 Рік тому +1

    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?

  • @punuravathsara
    @punuravathsara 2 роки тому +1

    Very Nice Video 👍👍

  • @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

  • @Goobersfrrrr
    @Goobersfrrrr 2 роки тому

    Can you make a video on how to do more levels and how to add stuff in to the platformer

  • @arnoldnyasetia4798
    @arnoldnyasetia4798 Рік тому

    Big fan

  • @boxhead-zk7sn
    @boxhead-zk7sn 8 місяців тому

    Pls if possible can you make tutorial or hint on how to make a level editor for this game🙏🙏🙏🙏🙏🙏🙏

  • @tomlee6534
    @tomlee6534 2 роки тому

    my pyame is showing import pygame could not be resolved?

  • @AGLegend-f2j
    @AGLegend-f2j 7 місяців тому

    It says i got an invalid syntax on line 1. i typed in: import os

  • @tuckercomm
    @tuckercomm 2 роки тому +2

    This will get 50 thousand views.

  • @ndjndxs7285
    @ndjndxs7285 2 роки тому

    Your Dice link in the description via bitly isn't working

  • @myJapanTV013
    @myJapanTV013 2 роки тому

    Thanks a big fan!
    ***Humble request, please put tutorial for pytest as well 🙏

  • @boolean0_046
    @boolean0_046 2 роки тому

    GREAT JOB!!!!!!!!!!!!!!!!!

  • @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.

  • @Oybekjon_Nuriddinov
    @Oybekjon_Nuriddinov Рік тому

    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?

  • @Collectors-Epic-Lounge
    @Collectors-Epic-Lounge Рік тому

    Hey, my window opens, and then closes, why does it keep doing that?

  • @WhatsNextFam
    @WhatsNextFam Рік тому

    It says player_vel is not defined im getting a name error someone please help

  • @dip8
    @dip8 Рік тому

    Does anyone know why the game started stuttering and being unresponsive for some reason? im around 50 minutes in and i noticed that before too

  • @tcgvsocg1458
    @tcgvsocg1458 2 роки тому

    wow huge work

  • @saadedi75
    @saadedi75 2 роки тому

    thanks for all video

  • @SkyFly19853
    @SkyFly19853 2 роки тому

    Could you make a tutorial on how to use Tilemap Editor with Python?

  • @eradboi
    @eradboi Рік тому

    Good job

  • @sofixfan_limlight
    @sofixfan_limlight 2 роки тому

    your channel is pretty!

  • @bread5286
    @bread5286 11 місяців тому

    What platform did you use for coding in this video???

    • @sahildas.
      @sahildas. 11 місяців тому

      visual studio code with a different theme

  • @georgeenticknap4216
    @georgeenticknap4216 2 роки тому

    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?

  • @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 4 місяці тому

      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.'

  • @stefano_er
    @stefano_er 2 роки тому

    thanks!