0

これは私のコードです:

import pygame, sys
from pygame.locals import *

pygame.init()

window = pygame.display.set_mode((800, 600))
pygame.display.set_caption('window')

black = (0,0,0)
white = (255, 255, 255)

logo = pygame.image.load('logo.png').convert_alpha()

clock = pygame.time.Clock()

# Sprites
m1 = pygame.image.load('m1.png').convert_alpha()
m2 = pygame.image.load('m2.png').convert_alpha()


mci = 1

x, y = 0, 0

run = True

while run:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.type == pygame.K_LEFT:
                x -= 10

            if event.type == pygame.K_RIGHT:
                x += 10

            if event.type == pygame.K_UP:
                y -= 10

            if event.type == pygame.K_DOWN:
                y += 10




        window.fill(white)

        pygame.draw.rect(window, black,(x,y, 50, 50))

        pygame.display.flip()

        clock.tick(10)

すべてが表示されますが、矢印キーで四角形を移動できず、終了すると常にエラーが発生します。助けてください..よろしくお願いします! PS明らかにチュートリアルからコピーしていますが、何が間違っているのかわかりませんか?

4

2 に答える 2

2

解決したように、使用する必要がありますevent.key == ...。おそらく、ループのネストも監視したいでしょう。現在、次のものがあります。

while running:
    for event in list_of_events:
        process_event
        draw_to_screen
        wait_a_while

これにより、別の質問 ( https://stackoverflow.com/a/13866804/2372604 ) で問題が発生しました。おそらく必要なのは、次のようなものです。

while running:
    for event in list_of_events:
        process_event

    draw_to_screen
    wait_a_while

に変更pygame.quit(); sys.exit()して、プログラムの最後にrun = false追加することもできます。pygame.quit()

于 2013-08-18T07:30:56.243 に答える