How to allow caps in this input box program for pygame?

2024/7/7 7:51:35

I found this input box module on the internet but it only allows lower case no upper. So could someone tell me what to change in the module to allow caps as im creating a small multiplayer game and i need login system and chatbox.

Here is the code example I am working with

# by Timothy Downs, inputbox written for my map editor# This program needs a little cleaning up
# It ignores the shift key
# And, for reasons of my own, this program converts "-" to "_"# A program to get user input, allowing backspace etc
# shown in a box in the middle of the screen
# Called by:
# import inputbox
# answer = inputbox.ask(screen, "Your name")
#
# Only near the center of the screen is blitted toimport pygame, pygame.font, pygame.event, pygame.draw, string
from pygame.locals import *def get_key():while 1:event = pygame.event.poll()if event.type == KEYDOWN:return event.keyelse:passdef display_box(screen, message):"Print a message in a box in the middle of the screen"fontobject = pygame.font.Font(None,18)pygame.draw.rect(screen, (0,0,0),((screen.get_width() / 2) - 100,(screen.get_height() / 2) - 10,200,20), 0)pygame.draw.rect(screen, (255,255,255),((screen.get_width() / 2) - 102,(screen.get_height() / 2) - 12,204,24), 1)if len(message) != 0:screen.blit(fontobject.render(message, 1, (255,255,255)),((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10))pygame.display.flip()def ask(screen, question):"ask(screen, question) -> answer"pygame.font.init()current_string = []display_box(screen, question + ": " + string.join(current_string,""))while 1:inkey = get_key()if inkey == K_BACKSPACE:current_string = current_string[0:-1]elif inkey == K_RETURN:breakelif inkey == K_MINUS:current_string.append("_")elif inkey <= 127:current_string.append(chr(inkey))display_box(screen, question + ": " + string.join(current_string,""))return string.join(current_string,"")def main():screen = pygame.display.set_mode((320,240))print ask(screen, "Name") + " was entered"if __name__ == '__main__': main()

Thx!

Answer

If you change the corresponding code to:

elif inkey <= 127:if pygame.key.get_mods() & KMOD_SHIFT or  pygame.key.get_mods() & KMOD_CAPS: # if shift is pressed  or caps is oncurrent_string.append(chr(inkey).upper()) # make string uppercaseelse:current_string.append(chr(inkey)) # else input is lower 

That should work.

If you want more info on keyboard modifier states look here

https://en.xdnf.cn/q/120310.html

Related Q&A

Why testing error rate increases at high values of K in KNN algorithm?

I am getting the error rates like this up to 20 values what might be the reason for this ?k_values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] Error [0.0, 0.0, 0.0, 0.0, 0…

Divide and Conquer. Find the majority of element in array

I am working on a python algorithm to find the most frequent element in the list. def GetFrequency(a, element): return sum([1 for x in a if x == element])def GetMajorityElement(a):n = len(a)if n == …

Scraping dynamic webpage using Python

I am trying to scrape following dynamically generated webpage https://www.governmentjobs.com/careers/capecoral?page=1 Ive used requests, scrapy, scrapy-splash but I simply get page source code and I d…

numba cuda deprecation error : how to update my code?

Im running a jupyter notebook frome here : https://github.com/noahgift/nuclear_powered_command_line_tools/blob/master/notebooks/numba-cuda.ipynb The docs of current numba/cuda is here : https://numba.r…

reverse nested dicts using python

I already referred these posts here, here and here. I have a sample dict like as shown below t = {thisdict:{"brand": "Ford","model": "Mustang","year": …

python how to generate permutations of putting a singular character into a word

No idea how to word this so the title sucks my bad, Basically, I have a 4 letter word and I want to generate every permutation of putting a dash in it. So if my word was Cats, I want to get every permu…

Selenium Scraping Javascript Table

I am stuggling to scrape as per code below. Would apprciate it if someone can have a look at what I am missing? Regards PyProg70from selenium import webdriver from selenium.webdriver import FirefoxOp…

PYTHON REGEXP to replace recognized pattern with the pattern itself and the replacement?

Text- .1. This is just awesome.2. Google just ruined Apple.3. Apple ruined itself! pattern = (dot)(number)(dot)(singlespace)Imagine you have 30 to 40 sentences with paragraph numbers in the above patt…

How can I extract the text between a/a? [closed]

Its difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying thi…

How do I access classes and get a dir() of available actions?

I have been trying to get access to available functions for a Match Object from re.search. I am looking for a way to do that similar to how I could do dir(str) and I can find .replace.This is my dir() …