0

この正確な質問は、昨年 4 月にこのフォーラムで行われました。ただし、唯一の答えは次のとおりでした。だから私はこれを最初にチェックし、チェックアウトしました。(私は Python 2.7 と Python 2.7 用の Pygame バージョン 1.9.1 リリースを持っています。)

そうではありませんが、次のコードは、他の人が報告したのと同じエラーを生成します。

This application has requested the runtime to terminate it in an unusual way. Please contact the application's support team for more info.

私は困惑しているので、元のポスターがそれを修正するために何をしたかを言っていたらよかったのに. これを実行しようとしているマシンには管理者権限がないことに注意してください。それが問題でしょうか?

スクリプトは以下です。(これは、書籍Beginning Game Development with Python and Pygame から直接引用したものです。) ウィンドウのサイズを変更しようとする瞬間まで実行されます。

background_image_filename = 'sushiplate.jpg'

import pygame
from pygame.locals import *
from sys import exit

SCREEN_SIZE = (640, 480)

pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)

background = pygame.image.load(background_image_filename).convert()

while True:

    event = pygame.event.wait()
    if event.type == QUIT:
        exit()
    if event.type == VIDEORESIZE:
        SCREEN_SIZE = event.size
        screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)
        pygame.display.set_caption("Window resized to "+str(event.size))

    screen_width, screen_height = SCREEN_SIZE
    for y in range(0, screen_height, background.get_height()):
        for x in range(0, screen_width, background.get_width()):
            screen.blit(background, (x, y))

    pygame.display.update()
4

2 に答える 2

1

警告、発生したすべてのイベントに対して描画しています。代わりに次のことが必要です。

while True:

    for event in pygame.event.get():

        if event.type == QUIT:
            exit()
        elif event.type == VIDEORESIZE:
            # ...
        elif event.type == KEYDOWN:
            # ...
    # draw.
    pygame.display.update()

次のコードは意味がありません: 何をしようとしていますか?

screen_width, screen_height = SCREEN_SIZE
for y in range(0, screen_height, background.get_height()):
    for x in range(0, screen_width, background.get_width()):
        screen.blit(background, (x, y))

pygame.display.update()
于 2013-09-17T17:46:28.210 に答える
0

サイズ変更モード設定で色深度を削除してみてください。

screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE)

色深度が残っていると同じエラーが発生し、それを削除すると消えます。なぜ失敗するのかわかりませんが、イベントオブジェクトのサイズ、w および h フィールドが何かに設定されていることを除けば、VIDEORESIZE イベントに関する公式ドキュメントはまったくありません。(伝えられるところによると、サーバー RAID エラーが原因で pygame.org が現在ダウンしているため、これを確認することは現在困難ですが、Google で情報を取得し、キャッシュされたページを表示できます。)

于 2013-09-16T23:17:24.133 に答える