簡體   English   中英

Pygame全屏模式故障

[英]Pygame Fullscreen Mode Glitch

我剛開始在Windows 10 PC上使用python 3.6.5上的pygame進行新游戲,但最終卻遇到了我無法解決的非常瘋狂的故障。 這是我的代碼,我將在以后解釋我的問題。

import pygame

pygame.init()

def create_window():
    window = pygame.display.set_mode((800,600),pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.FULLSCREEN)


create_window()

isRunning = True

while isRunning:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.type == K_a:
                isRunning = False


pygame.quit()

因此,當我運行此代碼時,pygame正常運行,創建了一個全屏黑色窗口。 然后出現了鼠標,當我按A鍵時。 當我這樣做時,我無法退出pygame窗口。 我進入Control + Alt + Delete任務管理器,它向我顯示了桌面。 圖形變得不太真實,屏幕放大了。唯一的退出方法是進入任務管理器並結束python任務。 然后,它又回到了正常的桌面。 我看了另一個項目: pygame全屏模式退出,我嘗試了該解決方案,但沒有用。 我一直在努力尋找奇怪台式機的解決方案,但是找不到。 我將不勝感激!

您得到黑屏,因為您沒有畫任何東西。

該代碼仍在無限循環中運行,這就是為什么您必須在任務管理器中完成它的原因。

A不會執行任何操作,因為您的代碼無法正確檢查它:

if event.type == K_a:

應該

if event.key == pygame.K_a:

您的桌面很奇怪,因為您使pygame將視頻卡更改為800x600分辨率,這不是您的本機桌面分辨率

一切都是正確的,並且代碼的行為與您編寫的相同。

我使用上面的更改運行代碼,並在按A時正確退出

我發現您的代碼存在多個問題。 以下是一些解決方案:

第一個問題是您正在使用event.type ,而您需要使用event.key

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.type == pygame.K_a:
            isRunning = False

第二個event.type需要更改為event.key

第二個問題是K_a需要以pygame. K_a pygame. , 像這樣:

if event.key == pygame.K_a:

您的桌面看起來很模糊,因為PyGame應用程序以800x600分辨率運行,這比大多數顯示器要小。 在關閉PyGame窗口之前,它仍然處於打開狀態。 只要打開窗口,自定義分辨率就會保留。

希望我能幫到您!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM