My jaw dropped when I realized that you were literally narrating a video COHERENTLY during 10 hours of coding. I kept checking the video length because I thought I was just looking at it wrong. You are a legend dude. Hats off!
For those wondering why the pearl does not always spawn (around 9:00:00) for some versions of Python or pygame (In Python 3.11.2 and pygame 2.5.2), do NOT use the groups()[0] as a Pearl parameter to get the all_sprites group. For exemple pass it explicitly through the Shell arguments from Level. It seems the groups() does NOT keep the ordering, hence all_sprites is not always [0].
True, I found this odd sprite group ordering bahaviour in PYdew Valley tutorial czcams.com/video/T4IX36sP_0c/video.html, when creating and displaying apples on the trees. It took me some time to find why apples was sometimes rendered and sometimes not.
So there are 2 solutions, first is explicitly pass all_sprites, and second is to override pygame.sprite.Group and add name parameter and self.name attribute like so: self.all_sprites = pygame.sprite.Group(name="all_sprites") In this scenario, you can target respective group not by self.groups[0], but with use of for group in self.groups: if group name == "all_sprites" : .... and so on :-)
Holy crap you uploaded this at the right time because I was actually working on my own (fairly flawed) level editor. Thanks for the time save clearcode, you absolute legend!
Oh my god. You are actually a human who did not born "speaking" python. Everytime I watch your videos I'm thinking "How the fuck is this guy so good?!" It feels good to see it takes time for even you to get things right and working. Of course nobody is gonna upload a video about something they did not figure out yet but some of these tutorials really take my will to code or even live away lol. Whilst it has tremendous educational value it also makes me feel like I'm dumb. Keep it up mate!@@ClearCode
i have just finished the introduction into pygame and that has helped me understand code so i can now follow you're harder and more complex tutorials such as this one thank you so much for the amount of time and effort you put into making these it helps out a lot since i am learning how to code.
Holy crap... this took me a month to get thru but well worth it. Thank you so much for these projects... I have learned so much (usually by making mistakes and spending an hour to fix it). If you follow along pay attention... steal your focus away for a second and you miss something important. Big thanks again! On to the next one....
This is simply amazing. I can't imagine how much effort you put into these tutorials. Thank you so much for your content, I've been learning a lot about advanced programming topics with you!
Thank you so much for the tutorial. So enjoyable to follow along and write code. This channel delivers probably the best Pygame related tutorials I have found on CZcams this far.
1:55:49 you can avoid if statements by using math.floor. The floor function will round down to minus infinity which will round down -0.5 to -1 for example.
I did that part using integer division and I didn't have to use if statements def get_cell(self, pos): return (pos[0] - int(self.origin.x)) // TILE_SIZE, (pos[1] - int(self.origin.y)) // TILE_SIZE
Your tutorials are amazing! I'm quite familiar with pygame so I end up skimming mainly, but the fact that you go into so much detail is fantastic if I forget something. I love your venn diagrams for explaining things conceptually before jumping into code. The way you draw on the screen to explain code is great too! But even better than that, you make sure to mention details that others don't, like how something may affect your performance and how to tweak something if I want to do it a little differently. If I wasn't completely broke I would definitely donate to your Patreon for all your amazing content, you definitely deserve it!!
Years ago I was asking to make games some old IT guy at my school recommended python I didn’t think it had the capability but you’ve shown true commitment
I noticed something interesting around 1:54:40: In the get_current_cell() method this is what I did before looking at your solution: col, row = distance_to_origin // TILE_SIZE #(vector integer-divided by a scalar) col, row = int(col), int(row) #get rid of float I then noticed that I did NOT have the double (0, 0) cell you got by doing "int(x / TILE_SIZE)". And indeed, the '//' is also called 'floor division' so the result gets rounded down. Sure enough: int(-10.71 // 64) = -1 ; whereas int(-10.71 / 64) = 0 So the '//' is a pretty elegant solution to fix the issue there.
For anyone wondering how to save and load maps, I've made a bit changes to the code so you can save and load your maps: def load_grid(self): grid = {(6, 3): 4, (7, 3): 4, (7, 4): 4, (8, 4): 4, (9, 5): 4, (10, 5): 4, (11, 5): 4, (12, 5): 4, (13, 5): 4, (14, 4): 4, (13, 4): 4, (12, 4): 4, (11, 4): 4, (10, 4): 4, (9, 6): 4, (9, 7): 4, (10, 7): 4, (6, 8): 2, (7, 8): 2, (8, 8): 2, (9, 8): 2, (10, 8): 2, (11, 8): 2, (12, 8): 2, (8, 6): 8, (12, 7): 8} for element in grid.items(): current_cell, object_id = element[0], element[1] if EDITOR_DATA[object_id]['type'] == 'tile': self.canvas_data[current_cell] = CanvasTile(object_id) self.check_neighbors(current_cell) def save_grid(self): res = {obj[0]: obj[1].tile_id for obj in self.canvas_data.items()} print(res) I binded these to keys to make them work, the save_grid just prints out the current grid that you can save as you want and the load_grid loads the grid to the editor, it is not much but I hope I was able to help someone.
@@8-bitavatar696 The objects won’t be saved, so you need to make a method for that similar to this and save that result into a different .pickle file and on the load, you read them both
Great video as always! I love your content! In the "get_current_cell" method in your editor, an alternative option to solve the coordinate problem, could be to just use floor division. That way, you dont have to use an if-statement, and the code would look a bit cleaner.
This is the third long tutorial of yours I follow and I really enjoy them. The quality is great. One thing I noticed so far, if I may, is that using the modulo operator would simplify the code and the explanation. For exemple here, around 37:00, the grid can be done with: for col in range(cols): x = (self.origin.x % TILE_SIZE) + (col * TILE_SIZE) pygame.draw.line(self.display_surface, LINE_COLOR, (x, 0), (x, WINDOW_HEIGHT)) and same for rows (no need for the "offset_vector")
I should have also used it for the animations! My brain somehow doesn't like modulo, one of my new years resolutions is to use it more :D Also, glad to hear you like the tutorials :)
Hello Christian, just stumbled upon on this course and I immediately bought your two courses on Udemy 🙂 Thank you for this great course. I am a Python veteran (I use it since 1997) and I have develop some mini games with PyGame, but seeing your approach on some solutions is a great resource! Please, make more content on Godot (as your other Udemy course does) which I think is growing very strong! Ciao!
Hey, thank you so much, I will make lots of Godot stuff once version 4 is out. Once that is out I will also retire the Godot udemy course, so I'm afraid you won't get much use out of that one. (you can get your money back for 30 days)
OK, nice one - sat through the whole thing. Everything works except the "bg" palms keep popping on the foreground during the gameplay portion(workd fine in the editor), for some reason. Can't say I picked up exactly 100% but definitely improved my overall understanding of the topic.
Experiencing some weirdness with the animations. Idk if it's a Linux thing, or what. The animations seem to cycle through almost randomly. For instance the idle animation of tooth is just odd. I can't figure out why. I tried your code from the project too. Same thing. Great tutorial btw. I love you take a second to explain WHY we are doing what we are doing
He uses Sublime text 2:30:00 for the first tile graphic is rough. It was hard to stay optimistic and innovated. A simple system early on just so i have something to see and play around with would have been nice.
really amazing, the best tutorial I've ever seen.thanks, Christian. but I want to mention a small bug, when I'm running the game in a not full screen window, of course in the playing level mode, if I try to move the window, the game would turn into a sky mode, only the player with the sea, no other objects. it seems the player has fallen down in loop. can you found out whats the problem? thanks
Hey man, been watching and coding along with most of your videos in the past few days and these are honestly way too well produced to be free so thank you for that. But I have one specific problem thats been bothering me(maybe others know the answer to it as well): In basically every static camera game I did while coding along and trying to make it somewhat unique as well as own little attemps I encountered the problem of 2 sprites moving at different speeds while the code for them is the same. I had the problem while coding along with your beginner runner tutorial and also while trying my own flappy bird and having a floor/ceiling, and obstacles. The sprites use this code: self.pos.x -= self.move_speed * dt self.rect.x = (round(self.pos.x)) I set dt at the start of every while loop with this: dt = time.time() - last_time last_time = time.time() and i end every while loop with self.clock.tick(FRAMERATE) The difference is very minor but very noticable because it looks like the obstacles stutter. I also noticed the problem getting worse with a very low framerate and almost fixed with a framerate of over 200. Maybe you or someone else can help as I rewrote a lot of code way too many times by now and I'm getting frustrated :/
Just figure out how to donate and I really want to say thank you for your pygame tutorials. I really enjoyed learning from them. Keep up with your great works!!
hey, awesome video. an idea: could you not use a modulus operator to do the same as you do here 14:52? in sted of line 53-55 you could just use: originOffsett = self.origin originOffsett.x %= TILE_SIZE again. awesome video!
Hey! Great video, I've used you for all my learning on pygame and managed to create my own project almost entirely on my own thanks to you! I've been following along this video and just needed a little clarification on one thing: what is the self doing that we keep calling? Where is it coming from and why are we using it? Is it just a variable? Or a way of running the commands! Anyone that knows help would be greatly appreciated!
When you have a class in Python, self refers to that class from within the class itself. For example, if I make an instance of a class called Example, I'd write something like: obj = Example() To call the class's draw method, I'd write obj.draw() I could write something like Example().draw() But if I'm inside of another class method, like update, you call it using self because there isn't a specific instance of Example yet to call. So I'd write self.draw() Self can access attributes (variables stored in that object, usually declared in the class's __init__ method) and methods (functions belonging to a class, which will almost always take self as the first argument) If you're still confused look up a video on Python classes or object oriented programming (oop)
Thanks Cris for another incredible tutorial, your hard work is much appreciated. Just one question, how do I save the level so I can keep working on it or playing it another day? In other words, how do I make level 1, then 2, etc.?
I an new to python watched both videos introduction and this one now I know how to make a editor and level but I still don't know how to save the map and player status can u make a video for this one how to save and run a map and in game player save status
Hey mate, i love your videos and follow them along. I learned so much through your videos but i sometimes keep struggling to find the right way to think about stuff. i'm not copy & pasting your stuff i always google if i don't understand something but if i have to do something like this from scratch by my own it's really hard. do you have any tips how to get there faster? or is just doing and time will tell?
i learned python by just following these then branching off a little bit i kept getting errors and then i googled up what they meant and then yes time will get you there you said this 4 months ago and i did not realize this until i wrote the comment i hope you have learned python
You can get my pygame course here: www.udemy.com/course/learn-python-by-making-games/?referralCode=A80FECE8C76096E01111
I'm not a pygame gamedev but I will buy it to support you.
You are a cool person with clear and cool tutorials. Thanks!
getting all of the graphics is hard, especially the terrain 😓
EDIT: WHYYYYYYYYY ARE THERE SO MANY graphic/land GRAPHICS
I bought it and just finished the frooger game! Are you making or planing to make more courses?
I just signed up for Kinoppi, thank you!
Wow! you have udemy course! will enroll for sure
The amount of effort you put into these tutorials is astonishing
When did that adjective start existing 💀
@@retuc1o I never have seen it, but I understand it somehow
@@retuc1o earth-shattering, dumbfoundingly, staggering
@@catsouls4714 took 3 months for bro to reply 💀
@@retuc1o I learn that adj before the common one
My jaw dropped when I realized that you were literally narrating a video COHERENTLY during 10 hours of coding. I kept checking the video length because I thought I was just looking at it wrong. You are a legend dude. Hats off!
I can't imagine how much time you spend on this AWESOME tutorial.
You are helping to community a lot.
Best.
Just reading the name of this video is insane! Thank you for all the work you put into these videos, they truly are fantastic!
For those wondering why the pearl does not always spawn (around 9:00:00) for some versions of Python or pygame (In Python 3.11.2 and pygame 2.5.2), do NOT use the groups()[0] as a Pearl parameter to get the all_sprites group. For exemple pass it explicitly through the Shell arguments from Level. It seems the groups() does NOT keep the ordering, hence all_sprites is not always [0].
thanks for sharing! I was wondering why the pearls wouldn't spawn consistently.
True, I found this odd sprite group ordering bahaviour in PYdew Valley tutorial czcams.com/video/T4IX36sP_0c/video.html, when creating and displaying apples on the trees. It took me some time to find why apples was sometimes rendered and sometimes not.
So there are 2 solutions, first is explicitly pass all_sprites, and second is to override pygame.sprite.Group and add name parameter and self.name attribute like so: self.all_sprites = pygame.sprite.Group(name="all_sprites") In this scenario, you can target respective group not by self.groups[0], but with use of for group in self.groups: if group name == "all_sprites" : .... and so on :-)
Thank you! This should have a lot more upvotes...
Thank you I had the same issue
Holy crap you uploaded this at the right time because I was actually working on my own (fairly flawed) level editor. Thanks for the time save clearcode, you absolute legend!
It took so long to get the level editor right! Hope it will help :)
@@ClearCode i can learn from this and try to create my own (edited) version of it
Oh my god. You are actually a human who did not born "speaking" python. Everytime I watch your videos I'm thinking "How the fuck is this guy so good?!"
It feels good to see it takes time for even you to get things right and working. Of course nobody is gonna upload a video about something they did not figure out yet but some of these tutorials really take my will to code or even live away lol. Whilst it has tremendous educational value it also makes me feel like I'm dumb. Keep it up mate!@@ClearCode
these are the most in-depth but easy to follow videos I've been able to find. Your work is astounding and appreciated!
i have just finished the introduction into pygame and that has helped me understand code so i can now follow you're harder and more complex tutorials such as this one thank you so much for the amount of time and effort you put into making these it helps out a lot since i am learning how to code.
Holy crap... this took me a month to get thru but well worth it. Thank you so much for these projects... I have learned so much (usually by making mistakes and spending an hour to fix it). If you follow along pay attention... steal your focus away for a second and you miss something important. Big thanks again!
On to the next one....
I thought the thumbnail looked familiar. You are using the same asset pack I am using in my tutorial for a platformer, but in Java.
Nice work man!
This is simply amazing. I can't imagine how much effort you put into these tutorials. Thank you so much for your content, I've been learning a lot about advanced programming topics with you!
Thank you so much for the tutorial. So enjoyable to follow along and write code. This channel delivers probably the best Pygame related tutorials I have found on CZcams this far.
1:55:49 you can avoid if statements by using math.floor. The floor function will round down to minus infinity which will round down -0.5 to -1 for example.
I did that part using integer division and I didn't have to use if statements
def get_cell(self, pos):
return (pos[0] - int(self.origin.x)) // TILE_SIZE, (pos[1] - int(self.origin.y)) // TILE_SIZE
I just wanted to say, Thank You! Your tutorials have seriously been helpful. I've been working with books and other dry material. So again, Thanks.
Your tutorials are amazing! I'm quite familiar with pygame so I end up skimming mainly, but the fact that you go into so much detail is fantastic if I forget something. I love your venn diagrams for explaining things conceptually before jumping into code. The way you draw on the screen to explain code is great too! But even better than that, you make sure to mention details that others don't, like how something may affect your performance and how to tweak something if I want to do it a little differently. If I wasn't completely broke I would definitely donate to your Patreon for all your amazing content, you definitely deserve it!!
Years ago I was asking to make games some old IT guy at my school recommended python I didn’t think it had the capability but you’ve shown true commitment
I noticed something interesting around 1:54:40:
In the get_current_cell() method this is what I did before looking at your solution:
col, row = distance_to_origin // TILE_SIZE #(vector integer-divided by a scalar)
col, row = int(col), int(row) #get rid of float
I then noticed that I did NOT have the double (0, 0) cell you got by doing "int(x / TILE_SIZE)".
And indeed, the '//' is also called 'floor division' so the result gets rounded down.
Sure enough: int(-10.71 // 64) = -1 ; whereas int(-10.71 / 64) = 0
So the '//' is a pretty elegant solution to fix the issue there.
I also noticed this as well, thank for sharing!
nice and excellent tutorial. clearly and elaborate.
Thank you so much :)
Well Done! Thanks!
For anyone wondering how to save and load maps, I've made a bit changes to the code so you can save and load your maps:
def load_grid(self):
grid = {(6, 3): 4, (7, 3): 4, (7, 4): 4, (8, 4): 4, (9, 5): 4, (10, 5): 4, (11, 5): 4, (12, 5): 4, (13, 5): 4, (14, 4): 4, (13, 4): 4, (12, 4): 4, (11, 4): 4, (10, 4): 4, (9, 6): 4, (9, 7): 4, (10, 7): 4, (6, 8): 2, (7, 8): 2, (8, 8): 2, (9, 8): 2, (10, 8): 2, (11, 8): 2, (12, 8): 2, (8, 6): 8, (12, 7): 8}
for element in grid.items():
current_cell, object_id = element[0], element[1]
if EDITOR_DATA[object_id]['type'] == 'tile':
self.canvas_data[current_cell] = CanvasTile(object_id)
self.check_neighbors(current_cell)
def save_grid(self):
res = {obj[0]: obj[1].tile_id for obj in self.canvas_data.items()}
print(res)
I binded these to keys to make them work, the save_grid just prints out the current grid that you can save as you want and the load_grid loads the grid to the editor, it is not much but I hope I was able to help someone.
Appreciate this. I sort of got it working..I think. You put both of these methods in the Editor Class and the key bindings in the loop method?
@@8-bitavatar696 The objects won’t be saved, so you need to make a method for that similar to this and save that result into a different .pickle file and on the load, you read them both
@@8-bitavatar696 You can store the values in .pickle files and read from that
@@8-bitavatar696 if you send me and email or something I can send you the upgraded version
@@Sekiraw-42069 I sent ya one, thanks.
Awesome course!
Thanks Clear Code!
Great video as always! I love your content! In the "get_current_cell" method in your editor, an alternative option to solve the coordinate problem, could be to just use floor division. That way, you dont have to use an if-statement, and the code would look a bit cleaner.
clear code you're the best !
I really appreciate your hard work and I look forward to supporting you as much as I can:)
awesome tutorial, i've made some games before but this is really helpful in understanding the different pygame built in class methods, thank you !
This is the third long tutorial of yours I follow and I really enjoy them. The quality is great.
One thing I noticed so far, if I may, is that using the modulo operator would simplify the code and the explanation. For exemple here, around 37:00, the grid can be done with:
for col in range(cols):
x = (self.origin.x % TILE_SIZE) + (col * TILE_SIZE)
pygame.draw.line(self.display_surface, LINE_COLOR, (x, 0), (x, WINDOW_HEIGHT))
and same for rows (no need for the "offset_vector")
I should have also used it for the animations! My brain somehow doesn't like modulo, one of my new years resolutions is to use it more :D
Also, glad to hear you like the tutorials :)
Hello Christian, just stumbled upon on this course and I immediately bought your two courses on Udemy 🙂
Thank you for this great course. I am a Python veteran (I use it since 1997) and I have develop some mini games with PyGame, but seeing your approach on some solutions is a great resource!
Please, make more content on Godot (as your other Udemy course does) which I think is growing very strong!
Ciao!
Hey, thank you so much, I will make lots of Godot stuff once version 4 is out. Once that is out I will also retire the Godot udemy course, so I'm afraid you won't get much use out of that one. (you can get your money back for 30 days)
if this is the quality of the free tutorial, I wonder how amazing the udemy course would be
As a suggestion for the future projects:
City building game, survival game or something like Foreger.
next one will be Doom :)
@@ClearCode I would love to see how you explain raycasting to make doom render environment other tutorials just seem to rush
Keep it up bro. Sick content with simple explanations!
Only one word 'AMAZING'
I clicked on the video looking for bronze, and I found it was gold. the perfect tutorial
Your videos are wonderful. You have done a very good job. Well done!!!!
Amazing video as always, the quality of the tutorials is top notch. Keep it up! :D
Great video again! I can't wait to watch and imply all these :)
We want more pygame tutorials!!
OK, nice one - sat through the whole thing.
Everything works except the "bg" palms keep popping on the foreground during the gameplay portion(workd fine in the editor), for some reason.
Can't say I picked up exactly 100% but definitely improved my overall understanding of the topic.
I was eager for this video! Thank you so much!
You are crazy... It's an awesome tutorial and you prolly put your whole soul in it ! GG
I really wish I could financially support you!!! Your channel is goldmine for programming.
Amazing tutorials pls dont stop... i know its a lot of time and effort.. but...
excellent tutorial, I hope that soon I will be able to master all the knowledge that you teach
Fantastic work. Bravo
Thank you very much. I am in love with your channel
Thank you so much for the tutorials.
Thanks Clear Code!
its the best
I'm looking for this man
Bro, this is awesome 😎💥
Eu adoro seu conteudo cara! Parabens pelo seu trabalho!!! (Portuguese)
Experiencing some weirdness with the animations. Idk if it's a Linux thing, or what. The animations seem to cycle through almost randomly. For instance the idle animation of tooth is just odd. I can't figure out why. I tried your code from the project too. Same thing. Great tutorial btw. I love you take a second to explain WHY we are doing what we are doing
You're incredible.
bruh your going to be making some kids happy :D
Respect to you and thank you.
These videos are amazing
10 hours???? I LOVE YOU
wow you deserve so much more
38:52, could you use %64 to find the offset? Like 128 becomes 0, 259 becomes 3? That seems easier to me.
I was trying to find a comment speaking about it because it was itching me a bit :D
Thank you for this video
Great!!! thanks!!!
It would be amazing if you released an blooper series where for some time you are being frustrated doing bug fixing/hunting
Coder Space and you are the best
wow, didnt know that python is capable of this! slamming a like
1:54:00
```
distance_to_origin = (vector(mouse_pos()) - self.origin) // TILE_SIZE
col = int(distance_to_origin.x)
row = int(distance_to_origin.y)
print((col, row))
```
Finally you post new video😂
Why are you so awesome?
Awesome! Thanks! You are the best ;)
Re belicooo! Saludo desde Colombia
python is really great
hey, please, tell us about surface opacity (smooth appearance and disappearance). I didn't find any information on this on the internet. Thank you.
cool artstyle
He uses Sublime text
2:30:00 for the first tile graphic is rough. It was hard to stay optimistic and innovated. A simple system early on just so i have something to see and play around with would have been nice.
respect for this video god damn
really amazing, the best tutorial I've ever seen.thanks, Christian.
but I want to mention a small bug, when I'm running the game in a not full screen window, of course in the playing level mode, if I try to move the window, the game would turn into a sky mode, only the player with the sea, no other objects. it seems the player has fallen down in loop. can you found out whats the problem? thanks
really helped me a lot to learn about working with gui. next up please make one for pygame with moderngl (opengl bindings for python)
pixel frog really made a good assets, i'm using too
Found the tutorial so useful for my current project. Could you help with how to attack and have a health bar
New suscriptor 👍🏻
Hey man, been watching and coding along with most of your videos in the past few days and these are honestly way too well produced to be free so thank you for that.
But I have one specific problem thats been bothering me(maybe others know the answer to it as well):
In basically every static camera game I did while coding along and trying to make it somewhat unique as well as own little attemps I encountered the problem of 2 sprites moving at different speeds while the code for them is the same. I had the problem while coding along with your beginner runner tutorial and also while trying my own flappy bird and having a floor/ceiling, and obstacles.
The sprites use this code:
self.pos.x -= self.move_speed * dt
self.rect.x = (round(self.pos.x))
I set dt at the start of every while loop with this:
dt = time.time() - last_time
last_time = time.time()
and i end every while loop with self.clock.tick(FRAMERATE)
The difference is very minor but very noticable because it looks like the obstacles stutter. I also noticed the problem getting worse with a very low framerate and almost fixed with a framerate of over 200.
Maybe you or someone else can help as I rewrote a lot of code way too many times by now and I'm getting frustrated :/
Try to get dt with pygame.tick() / 1000 maybe it's just that
Thanks!
Just figure out how to donate and I really want to say thank you for your pygame tutorials. I really enjoyed learning from them. Keep up with your great works!!
Thank you so much! And super happy to hear that you enjoy the tutorials :)
hey, awesome video. an idea: could you not use a modulus operator to do the same as you do here 14:52? in sted of line 53-55 you could just use:
originOffsett = self.origin
originOffsett.x %= TILE_SIZE
again. awesome video!
Hey! Great video, I've used you for all my learning on pygame and managed to create my own project almost entirely on my own thanks to you! I've been following along this video and just needed a little clarification on one thing: what is the self doing that we keep calling? Where is it coming from and why are we using it? Is it just a variable? Or a way of running the commands! Anyone that knows help would be greatly appreciated!
When you have a class in Python, self refers to that class from within the class itself. For example, if I make an instance of a class called Example, I'd write something like:
obj = Example()
To call the class's draw method, I'd write
obj.draw()
I could write something like
Example().draw()
But if I'm inside of another class method, like update, you call it using self because there isn't a specific instance of Example yet to call. So I'd write
self.draw()
Self can access attributes (variables stored in that object, usually declared in the class's __init__ method) and methods (functions belonging to a class, which will almost always take self as the first argument)
If you're still confused look up a video on Python classes or object oriented programming (oop)
CRAZY!
And me thinking he'd stop making free pygame stuff after that udemy course. A nice surprise.
WOW!!! I thought PYGame was for simple games
很棒! (it means great ,awesome)
please a tutorial on smooth scale in pygame
hi uhm could you make a tutorial about making a game like Geometry Dash?
I would make the background trees a bit more opaque
Thanks Cris for another incredible tutorial, your hard work is much appreciated.
Just one question, how do I save the level so I can keep working on it or playing it another day? In other words, how do I make level 1, then 2, etc.?
I an new to python watched both videos introduction and this one now I know how to make a editor and level but I still don't know how to save the map and player status can u make a video for this one how to save and run a map and in game player save status
for col and row in get_current_cell, why don't you just do :
(col, row) = distance_to_origin // TILE_SIZE
?
I WISH THERE'S A CHANNEL LIKE THIS BUT ABOUT DATA
working on it...
@@ClearCode OMG thank you, I love your content so much, I'm looking forward to it.
Could you do a tutorial on how to make an rpg maker style of program in python? Love your videos btw
I love ur videos, and I greatly appreciate them! Can you do a Pac Man game next? Thank you in advance.
What do you use to record/doodle?
Hey mate, i love your videos and follow them along. I learned so much through your videos but i sometimes keep struggling to find the right way to think about stuff. i'm not copy & pasting your stuff i always google if i don't understand something but if i have to do something like this from scratch by my own it's really hard. do you have any tips how to get there faster? or is just doing and time will tell?
i learned python by just following these then branching off a little bit
i kept getting errors and then i googled up what they meant and then yes
time will get you there
you said this 4 months ago and i did not realize this until i wrote the comment
i hope you have learned python
Pourquoi cette vidéo est mise sur la playliste de laupok sur la playliste pokemown s'il vous plaît dites moi le car je ne comprends pas
Ha, t dans la meme M que moi, j'aimerais bien savoir aussi...
Jimagine que c'est pasque il fais du codage
@@yunuda.scarlet sûrement
how did you make the music to this awesome video?