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)"
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 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
amazing tutorial, but is there a way of typing in different places and switching between them? if its what u meant by saying "multiple strings are not supported" then sry
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
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 -_-
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?
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.
@@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)
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 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,
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.
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
@@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'
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
Your tutorials are some of the best out on youtube! Keep up the work!
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
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)"
thank you i couldnt find anyone adressing except you for my project thankyou
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 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
Such a clean lecture, master at work, cheers.
Good man as expected explained very very very well
you explain things so clearly holy shit, thanks
Congratulations! Its super clear
amazing tutorial, but is there a way of typing in different places and switching between them?
if its what u meant by saying "multiple strings are not supported" then sry
Great tutorial! I'm building a Pygame on my RUclips channel and I'll be using this. Thanks again!
Thanks for the tutorial. It really helped. You deserve more likes
Thanks for the video, it helped me a lot!
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 :(
It would be nice to provide the source code in the description
You're supposed to be here to learn, not copy and paste.
Thanks so much for your tutorials
Thanks so much just what I needed ..
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
Very helpful for me. Thank you!
great tutorial, thank you!
Clear and concise👌🏾
I was hoping this would give me a way to use the text as an input
THANK YOU SO MUCH
thaank you so much ❤❤
Thank you from Russia
stay in the box:
if surface1.get_width() - 10 > input_rect.width:
user_txt = user_txt[:-1]
very good tutorial
This channel is insane!
Subscibed!!!
this is nice and all but what about the enter input?
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 -_-
If i could give you 10 thumbs up i would do it :). very good tutorial.
nice way of explaination
Thanks very helpful
Awesome! Keep going!
very nice...to the point
Is there any way of being able to manipulate the input within the text box??
How can I convert it into a function?
because I have real problems with it
convert what into a function?
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.
Thank you so much sir...
Very well made video 👌
Like ur vibe man
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?
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
How can I make a code that other language letters can be entered? not only the English alphabet but also Korean, Japanese, Chinese
👍👍👍👍👍👍
thanks brother haha
Thank you.
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
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
Amazing
Hi, It is not stopping how many characters/width is allowed. How can I fix this?
Which code editor do you use? Pls tell
Thanks a lot.
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)
you are awesome
good job mate
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
how do you apply this into classes?
apply the text into classes?
perfect
So it's impossible to write kanji, or a word with a vowel with accent like León. 😢
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
WOW
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 don't have the 'l' when I run the code
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.
Ahh yes "now we can see that we can't see anything"
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
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++?
It is saying clock not defined.
Is there any way i can fix this
define a clock? :P
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
What if there are 2 inputs?
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
"hi every butt"
can somebody send me the code?
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?
Delete key types random character
what does the flip function do?
It reflects a surface
@@ClearCode ok, Thanks for the amazing video
How do you make the text box understand
?