I have function for writing to the screen and I'm sure its fine but it still doesn't work.
The problem is when the user types their username it doesn't appear on the screen. It's right in the code after the check whether the event is key event.
The name of the function that returns the key that pressed: get_key().
the name of the function that print the string: print_str_by_place().
Here is my code:
def print_str_by_place(str, row, col):
font = pygame.font.Font(None, 18)
label = font.render(str, 1, black)
screen.blit(label, (row, col))
def get_key():
while 1:
event = pygame.event.poll()
if event.type == pygame.KEYDOWN:
return event.key
else:
pass
pygame.init()
screen = pygame.display.set_mode((700, 700))
done = True
login = True
#sigh_up = False
user_name_p = False
password_p = False
username_lst = []
username = ""
password_lst = []
password = ""
row_u = 343
col_u = 260
while done:
if login:
img = pygame.image.load("LOGIN.png")
screen.blit(img,(0,0))
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONUP:
mouse = pygame.mouse.get_pos()
if if_button_pressed(255,418,331,355,mouse): # if the username pressed
username_p = True
password_p = False
elif if_button_pressed(255,418,382,403,mouse): # if the password pressed
username_p = False
password_p = True
elif if_button_pressed(520,675,615,666,mouse): #if sigh up pressed
login = False
break
else:
user_name_p = False
password_p = False
if event.type == pygame.KEYDOWN:
if user_name_p:
pygame.font.init()
key = get_key()
if key == pygame.K_BACKSPACE:
username = username[0:-1]
elif key == pygame.K_RETURN:
break
elif key <= 127:
username.append(chr(key))
username = username_lst.join("")
print_str_by_place(username,345,260)
if event.type == pygame.QUIT:
done = False
pygame.display.update()
else:
img = pygame.image.load("sign_up.png")
screen.blit(img,(0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = False
if event.type == pygame.MOUSEBUTTONUP:
mouse = pygame.mouse.get_pos()
if if_button_pressed(21,230,621,680,mouse): # if Back pressed
login = True
break
pygame.display.update()
# get string and print it by place
def print_str_by_place(str, row, col):
font = pygame.font.Font(None, 18)
label = font.render(str, 1, black)
screen.blit(label, (row, col))
def get_key():
while 1:
event = pygame.event.poll()
if event.type == pygame.KEYDOWN:
return event.key
else:
pass
pygame.init()
screen = pygame.display.set_mode((700, 700))
done = True
login = True
#sigh_up = False
user_name_p = False
password_p = False
username_lst = []
username = ""
password_lst = []
password = ""
row_u = 343
col_u = 260
while done:
if login:
img = pygame.image.load("LOGIN.png")
screen.blit(img,(0,0))
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONUP:
mouse = pygame.mouse.get_pos()
if if_button_pressed(255,418,331,355,mouse): # if the username pressed
username_p = True
password_p = False
elif if_button_pressed(255,418,382,403,mouse): # if the password pressed
username_p = False
password_p = True
elif if_button_pressed(520,675,615,666,mouse): #if sigh up pressed
login = False
break
else:
user_name_p = False
password_p = False
if event.type == pygame.KEYDOWN:
if user_name_p:
pygame.font.init()
key = get_key()
if key == pygame.K_BACKSPACE:
username = username[0:-1]
elif key == pygame.K_RETURN:
break
elif key <= 127:
username.append(chr(key))
username = username_lst.join("")
print_str_by_place(username,345,260)
if event.type == pygame.QUIT:
done = False
pygame.display.update()
else:
img = pygame.image.load("sign_up.png")
screen.blit(img,(0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = False
if event.type == pygame.MOUSEBUTTONUP:
mouse = pygame.mouse.get_pos()
if if_button_pressed(21,230,621,680,mouse): # if Back pressed
login = True
break
pygame.display.update()
What is wrong?