if your backspace doesn't work try adding " clear_rect = pygame.Rect(left position, top position, width, height) " by your input_rect declaration and " pygame.draw.rect(screen, white, clear_rect) " beneath your "pygame.draw.rect(screen, color, input_rect, 2)"
how can i do it in the way that after writing the text in pygame and pressing enter the input is saved and checked by the program to see if its correct or not
Here to add a little bit of extra info If for some reason your new text is overlapping with your previous text Add a line Screen.fill((0,0,0)) After user_text=user_text[:-1]
Not entirely sure this works nor have I tried it myself yet and I'm probably late anyway but could you print the text to the screen then do the coordinates that the text renders to -1 on the y axis
When I press backspace it just moves back a letter instead of deleting the last one. So when I clicks another key it writes over other text that hasn’t been deleted. Help
My backspace is not working. If I type something and I press backspace, the characters do not go away, and if i type something again, it overlaps the existing characters
I don't know if you still need it, but the problem is that screen.blit(user_text etc ) keeps writing the text above the previous one, so you don't notice that when you use event.unicode, since the program keeps writing the same string you can roughly cover the previous one by drawing a smaller and fully coloured rectangle inside the one that you already have
I'm not new with python and pygame but it didn't came to my mind to use "max" for the width of rect. Why I'm always forgetting "max" and "min" function?
@@TutorialTube448 any text. for example I copy "Hello World", I past it and it shows a rectangle. (i am pasting this on the window. I would imagine this should work as if you wrote the entire text you are trying to paste as if you typed it word by word)
If you want to make this while the game is running, you can make a rectangle at the bottom asking for the name and stop all inputs of moving the player and then do the steps in the video. I guess this should work anyway
You can define a new loop at the end of your program and add this code inside, also add this: if event.key == pygame.K_RETURN: global i i = user_text main() # Your loop's name might be different Then blit the text as the variable i at the start of your main (or other) loop.
I am a learner and i just started coding, i am getting an error that (name += event.unicode TypeError: unsupported operand type(s) for +=: 'pygame.Surface' and 'str')
How I did this before watching this (I still have it like this) is I wrote lines of code to get text input for every single letter, numbers and symbols because I didn't realize event.unicode was a function. And it is a success so I don't want to waste it now -_-
you don't have to believe but pygame is a great module in making sliders, however tkinter (module that you don't need to download in anything because it is part of python) can do a great job in making a slider] Widgets are various controls, such as buttons, labels, scrollbars, radio buttons, and text boxes used in a GUI application. They are also little components or controls of Graphical User Interface (GUI). Pady Puts some space between the button widgets and the borders of the frame and the borders of the root window Pack Is a geometry manager that just basically stacks widgets on top of each other. TKINTER CODE FOR MAKING SLIDERS slider_frame = tk.Frame(root, borderwidth=5, relief=tk.SUNKEN) # -- slider_frame.pack(pady=10) slider = tk.Scale(slider_frame, from_=0.00,# starting point of the range for sliding from.(minimum) to=1.0, and this is the max in the range orient=tk.VERTICAL, for the way it is going to be seen as length=400, -- how long the widget is tickinterval = 0.1, resolution = 0.01,
@@ClearCode when I did that, it said: line 16, in text_surface = base_font.pygame.render(user_text,True,(255,255,255)) AttributeError: 'pygame.font.Font' object has no attribute 'pygame'
Hey I'm having a problem with the colors: "color_active = pygame.color('lightskyblue3') TypeError: 'module' object is not callable" Can anyone help me?
Hi, try this: color_active = pygame.Color('lightskyblue3') It looks like there is a syntax error. The letter "c" in "pygame.color" has to be uppercase. hope this helps
I want to put a limit to the characters, does anyone know how to do that?? Also I really need help with this: if input_rect.collidepoint(event.pos): It is giving me this error: AttributeError: 'tuple' object has no attribute 'collidepoint'
for the character limit, go with something like if len(user_string) < char_limit: then add the user string and for the error below, it seems that your input_rect variable does not have a rectangle but a tuple, check what you put inside of that.
@@ClearCode Thanks so much, I figured it out. I put active = False when the rect is more than 250 pixels wide so you can't expand the rect more and you cant type, also I figured out the rect tuple problem, I put input_rect = (WIDTH/2 - 130 , 500, 140, 32) instead of input_rect = pygame.Rect(WIDTH/2 - 130 , 500, 140, 32)
@@Ashersminicartoons glad it worked out for you :) Although, do be aware that different characters usually have different widths, so your approach wouldn't limit the character count consistently, just be aware of that.
You can use the assert statement as try: assert len(user_text) < (limit) : pass except AssertionError: print("Limit exceeded") This is the other way to add limitations.
3:47 "Now we can see that cant see anything"
- Clear Code
4:09 "You still can't see anything"
This guy is a gifted teacher!
I pray for your healthy life
The explanation is clear and concise ( but 1.25 times is better). A really helpful video.
Bro..bro.. bro.....
I can't thank you in words, bro you are so awesome and I solved all my doubts
thank you i couldnt find anyone adressing except you for my project thankyou
Good man as expected explained very very very well
Such a clean lecture, master at work, cheers.
if your backspace doesn't work try adding " clear_rect = pygame.Rect(left position, top position, width, height) " by your input_rect declaration and " pygame.draw.rect(screen, white, clear_rect) " beneath your "pygame.draw.rect(screen, color, input_rect, 2)"
Genuinely, thank you so much
you explain things so clearly holy shit, thanks
Congratulations! Its super clear
Thanks for the tutorial. It really helped. You deserve more likes
how can i do it in the way that after writing the text in pygame and pressing enter the input is saved and checked by the program to see if its correct or not
This channel is insane!
Subscibed!!!
Thanks for the video, it helped me a lot!
Here to add a little bit of extra info
If for some reason your new text is overlapping with your previous text
Add a line
Screen.fill((0,0,0))
After user_text=user_text[:-1]
how i can down a line, when i press enter?
use K_RETURN
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
YOURVAR += '
'
@@shourya9998 I don't think that works, it just makes a missing character which I assume represents _new line_ instead of actually making a new line
Not entirely sure this works nor have I tried it myself yet and I'm probably late anyway but could you print the text to the screen then do the coordinates that the text renders to -1 on the y axis
@@bigboibob2568 Yeah that doesn't work it just prints a block, my bad :(
Thanks so much for your tutorials
Great tutorial! I'm building a Pygame on my TH-cam channel and I'll be using this. Thanks again!
When I press backspace it just moves back a letter instead of deleting the last one. So when I clicks another key it writes over other text that hasn’t been deleted. Help
Clear and concise👌🏾
Very helpful for me. Thank you!
Thanks so much just what I needed ..
It would be nice to provide the source code in the description
You're supposed to be here to learn, not copy and paste.
great tutorial, thank you!
thaank you so much ❤❤
Very well made video 👌
Thank you from Russia
Awesome! Keep going!
How can I convert it into a function?
because I have real problems with it
convert what into a function?
THANK YOU SO MUCH
My backspace is not working. If I type something and I press backspace, the characters do not go away, and if i type something again, it overlaps the existing characters
I don't know if you still need it, but the problem is that screen.blit(user_text etc ) keeps writing the text above the previous one, so you don't notice that when you use event.unicode, since the program keeps writing the same string you can roughly cover the previous one by drawing a smaller and fully coloured rectangle inside the one that you already have
double check your code with his. I did it just now, and it works fine.
this is nice and all but what about the enter input?
I was hoping this would give me a way to use the text as an input
If i could give you 10 thumbs up i would do it :). very good tutorial.
very good tutorial
I'm not new with python and pygame but it didn't came to my mind to use "max" for the width of rect.
Why I'm always forgetting "max" and "min" function?
nice way of explaination
this is awesome but when I paste something into it, only a rectange appears. how do I fix this?
what do you mean by the word
'paste' ?
@@TutorialTube448 ctrl+v
@@dawe7081 no i know that. I mean what are you trying to paste
And what are you trying to paste it into?
@@TutorialTube448 any text. for example I copy "Hello World", I past it and it shows a rectangle. (i am pasting this on the window. I would imagine this should work as if you wrote the entire text you are trying to paste as if you typed it word by word)
How can I make a code that other language letters can be entered? not only the English alphabet but also Korean, Japanese, Chinese
Hi, It is not stopping how many characters/width is allowed. How can I fix this?
very nice...to the point
Hello. Can someone help me? How do we set boundaries so that when we type a huge line the box will reshape and the line wont go out of the screen?
adding an if statement in there should do the trick quite easily
Thanks very helpful
Thank you so much sir...
Which code editor do you use? Pls tell
Like ur vibe man
Nice vid ! But I want to "ask" the user to type his username and print it while my game is playing but I don't know how to do it ... help ?
If you want to make this while the game is running, you can make a rectangle at the bottom asking for the name and stop all inputs of moving the player and then do the steps in the video.
I guess this should work anyway
You can define a new loop at the end of your program and add this code inside, also add this: if event.key == pygame.K_RETURN:
global i
i = user_text
main() # Your loop's name might be different
Then blit the text as the variable i at the start of your main (or other) loop.
and also instead of calling the main loop at the bottom call the new loop
a question please if i just want to have the same with the same width but when the char are too long the just go in it
i don't know, try drawing a black rectangle on top of the righ side of the text box that goes to the and of the screen, the effect will be the same
So it's impossible to write kanji, or a word with a vowel with accent like León. 😢
Hi is there any way I can save the user input in a variable, and then use it to dispaly further in my program?
Isn't that exactly what he did with his user_input variable
Clear code's the best
how do you apply this into classes?
apply the text into classes?
I don't have the 'l' when I run the code
It is saying clock not defined.
Is there any way i can fix this
define a clock? :P
I am a learner and i just started coding,
i am getting an error that
(name += event.unicode
TypeError: unsupported operand type(s) for +=: 'pygame.Surface' and 'str')
You seem to be trying to add a surface to the text, check the line where you render the text, I would guess a wrong variable ended up in there.
@@ClearCode thanks, i caught my error ,i used same variable for rendering
How I did this before watching this (I still have it like this) is I wrote lines of code to get text input for every single letter, numbers and symbols because I didn't realize event.unicode was a function. And it is a success so I don't want to waste it now -_-
How to limit the character count? can you explain on it example? i used this ccde and my rectangle is infinite
just add an if statement that measures the length of the string?
@@ClearCode can you please write it for me :( im a beginner and i just rewrote the code
@@hajp around minute 5 on line 15 when it says user_text += event.unicode put it in the if statement -> if len(user_text) < 10
I just made up the number 10, chose whatever amount of characters you want
good job mate
Does anyone know how to make a slider in pygame using classes? I am really struggling with this.
you don't have to believe but pygame is a great module in making sliders, however tkinter (module that you don't need to download in anything because it is part of python) can do a great job in making a slider]
Widgets are various controls, such as buttons, labels, scrollbars, radio buttons, and text boxes used in a GUI application. They are also little components or controls of Graphical User Interface (GUI).
Pady Puts some space between the button widgets and the borders of the frame and the borders of the root window
Pack Is a geometry manager that just basically stacks widgets on top of each other.
TKINTER CODE FOR MAKING SLIDERS
slider_frame = tk.Frame(root, borderwidth=5, relief=tk.SUNKEN) # --
slider_frame.pack(pady=10)
slider = tk.Scale(slider_frame,
from_=0.00,# starting point of the range for sliding from.(minimum)
to=1.0, and this is the max in the range
orient=tk.VERTICAL, for the way it is going to be seen as
length=400, -- how long the widget is
tickinterval = 0.1,
resolution = 0.01,
slider.pack()
I keep getting the error: line 11, in
if event.type == pygame.QUIT():
TypeError: 'int' object is not callable
There shouldn't be parenthesis after QUIT, it should be:
if event.type == pygame.QUIT:
@@ClearCode ohhhhh, thanks!
@@ClearCode when I did that, it said: line 16, in
text_surface = base_font.pygame.render(user_text,True,(255,255,255))
AttributeError: 'pygame.font.Font' object has no attribute 'pygame'
There should not be pygame after the base_font. So just: base_font.render
Hey
I'm having a problem with the colors:
"color_active = pygame.color('lightskyblue3')
TypeError: 'module' object is not callable"
Can anyone help me?
Hi, try this:
color_active = pygame.Color('lightskyblue3')
It looks like there is a syntax error. The letter "c" in "pygame.color" has to be uppercase. hope this helps
pygame.Color not color
this is a different way than what you know but it works if you put it in a variable
R G B
0, 128, 255 = Lblue
0 , 0 , 255 = blue
0 , 0 , 128 = dblue
Thank you.
I want to put a limit to the characters, does anyone know how to do that??
Also I really need help with this: if input_rect.collidepoint(event.pos):
It is giving me this error:
AttributeError: 'tuple' object has no attribute 'collidepoint'
for the character limit, go with something like
if len(user_string) < char_limit: then add the user string
and for the error below, it seems that your input_rect variable does not have a rectangle but a tuple, check what you put inside of that.
@@ClearCode Thanks so much, I figured it out. I put active = False when the rect is more than 250 pixels wide so you can't expand the rect more and you cant type, also I figured out the rect tuple problem, I put input_rect = (WIDTH/2 - 130 , 500, 140, 32) instead of input_rect = pygame.Rect(WIDTH/2 - 130 , 500, 140, 32)
WIDTH was equal to my screen width
@@Ashersminicartoons glad it worked out for you :) Although, do be aware that different characters usually have different widths, so your approach wouldn't limit the character count consistently, just be aware of that.
You can use the assert statement as
try:
assert len(user_text) < (limit) :
pass
except AssertionError:
print("Limit exceeded")
This is the other way to add limitations.
Thanks a lot.
Can you make a tutorial for this using OOP please
python isnt ment for object oriented programming.
For this there are languages like Java or C
@@Martin-hj4re it is but you can just choose not to
C and OOP? 😂You mean C++?
What if there are 2 inputs?
thanks brother haha
you are awesome
Ahh yes "now we can see that we can't see anything"
👍👍👍👍👍👍
Amazing
no matter which key I press it displays only 'L'
it is not the code it is your laptop if you followed everything without an mistake.
module 'pygame' has no attribute 'render
you need to render the font, not pygame itself
@@ClearCode thank you
tysm
can somebody send me the code?
perfect
stay in the box:
if surface1.get_width() - 10 > input_rect.width:
user_txt = user_txt[:-1]
what does the flip function do?
It reflects a surface
@@ClearCode ok, Thanks for the amazing video
"hi every butt"
WOW
Delete key types random character
I really think pygame should have some gui widgets.... Else the code gets messed up whipe we make our own widgets..
is that just trying to make your widgets in pygame? and no other module?
How do you make the text box understand
?