pygame 文字输入交互_pygame能接收用户的文本输入吗?
pygame貌似沒有直接的輸入框給你調用,你可以設置一個點擊的事件觸發鍵盤記錄,將接收到的字符串實時顯示到屏幕上。而中文的話,你可以用拼音轉中文的庫,不過應該比較麻煩。
我在官網上找到了一個跟我思路差不多的實現,這個不支持中文輸入,你可以自己搞一個簡單的,例如Pinyin2Hanzi庫就可以幫你實現一個簡單地轉換。應該是inputbox。
還有一個是pygame的pgu庫,這是第三方開發的,有輸入框,你可以看下文檔,具體怎么使用你自己學吧。
http://www.pygame.org/pcr/inp...
import 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.key
else:
pass
def 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()
print(inkey
)
if inkey == K_BACKSPACE:
current_string = current_string[0:-1]
elif inkey == K_RETURN:
break
elif 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()
總結
以上是生活随笔為你收集整理的pygame 文字输入交互_pygame能接收用户的文本输入吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存选购攻略:游戏玩家VS办公用户,谁更
- 下一篇: 内存散热,让电脑更稳定