亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pygame 不解釋鍵盤輸入

Pygame 不解釋鍵盤輸入

夢里花落0921 2021-09-28 20:47:41
所以我最終需要為我的一個班級創建一個游戲,我想使用 pygame。所以我試圖按照教程進行操作,而 pygame 無法識別鍵盤輸入。游戲加載沒有錯誤,但 m 角色不動。有什么幫助嗎?我的代碼:#Importimport pygamefrom pygame.locals import*#initializationpygame.init()width, height = 640, 480screen=pygame.display.set_mode((width, height))#keyskeys = [False, False, False, False]playerpos=[100,100]#imagesplayer = pygame.image.load("resources/images/dude.png")grass = pygame.image.load("resources/images/grass.png")castle = pygame.image.load("resources/images/castle.png")#loopwhile 1:    #clear screen    screen.fill(0)     #screen elements    for x in range(width/grass.get_width()+1):     for y in range(height/grass.get_height()+1):             screen.blit(grass,(x*100,y*100))    screen.blit(castle,(0,30))    screen.blit(castle,(0,135))    screen.blit(castle,(0,240))    screen.blit(castle,(0,345))    screen.blit(player,playerpos)    #update screen    pygame.display.flip()    #loop events    for event in pygame.event.get():        #check if event is the X button        if event.type==pygame.QUIT:            #key_input            if event.type == pygame.KEYDOWN:                if event.key==K_w:                    keys[0]=True                elif event.key==K_a:                    keys[1]=True                elif event.key==K_s:                    keys[2]=True                elif event.key==K_d:                    keys[3]=True            if event.type == pygame.KEYUP:                if event.key==pygame.K_w:                    keys[0]=False                elif event.key==pygame.K_a:                    keys[1]=False                elif event.key==pygame.K_s:                    keys[2]=False                elif event.key==pygame.K_d:                    keys[3]=False            #if it quits            pygame.quit()            exit(0)    #9-Move player    if keys[0]:        playerpos[1]-=5    elif keys[2]:        playerpos[1]+=5    if keys[1]:        playerpos[0]-=5    elif keys[3]:         playerpos[0]+=5同樣,當我按下 wasd 時,加載的字符不會移動。任何幫助將不勝感激,因為我正在嘗試了解有關游戲開發的更多信息(:
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您正在檢查您檢查的 if 語句中的 event.type 是否有按鍵


if event.type == pygame.QUIT

意思是,您的程序僅在您嘗試退出程序后檢查按鍵操作。


將所有檢查關鍵操作的 if 語句向左移動一個選項卡,它應該可以工作。


但是,當退出時,您將不得不移動要執行的代碼


if event.type == pygame.QUIT

像這樣:


if event.type==pygame.QUIT:

    #if it quits

    pygame.quit()

    exit(0)

#key_input

elif event.type == pygame.KEYDOWN:

    if event.key==K_w:

        keys[0]=True

    elif event.key==K_a:

        keys[1]=True

    elif event.key==K_s:

        keys[2]=True

    elif event.key==K_d:

        keys[3]=True

elif event.type == pygame.KEYUP:

    if event.key==pygame.K_w:

        keys[0]=False

    elif event.key==pygame.K_a:

        keys[1]=False

    elif event.key==pygame.K_s:

        keys[2]=False

    elif event.key==pygame.K_d:

        keys[3]=False

為了提高性能,使用 elif-statements 來檢查 event.type 而不是 if-statements,因為 event.type 不能是 pygame.QUIT、pygame.KEYDOWN 和 pygame.KEYUP。


查看完整回答
反對 回復 2021-09-28
  • 1 回答
  • 0 關注
  • 233 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號