0

問題があり、このバグをどのように説明するのかわかりません。移動したい画像があります。これがコードです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygame
import random

pygame.init() 
size=[800,600] 
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Sub Dice")

background_position=[0,0]
background_image=pygame.image.load('Gfx/Table.png').convert()
card=pygame.image.load('Gfx/Deck1card01.png').convert_alpha()
card=pygame.transform.smoothscale(card,(130,182))
closeDeckShirt=pygame.image.load('Gfx/CardBack.png').convert_alpha()

SETFPS=30
zx=0
zy=0

done=False
clock=pygame.time.Clock()

while done==False:
    clock.tick(SETFPS)
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:
            done=True

        if event.type == pygame.MOUSEBUTTONDOWN:
            print('a')


        screen.blit(background_image, background_position)
        screen.blit(card,[zx,zy])
        zx=zx+2
        zy=zy+2
        pygame.display.flip()

pygame.quit ()

問題は、マウスをクリックまたは移動したときにのみカード画像が移動することです。マウスに触れない場合、画像は静止しています。ただし、フレームごとに移動します(1/30秒)。

誰かが私が間違っていることを説明できますか?

4

1 に答える 1

3

イベントループ内を反転しています。これは、現在、生成されたすべてのイベントの画面を更新していることを意味します。あなたはそれを望んでいません。

これがボイラープレートです。

要点はあなたです:

for event in events:
    #handle them
draw()
pygame.display.flip()
于 2012-12-13T19:16:03.973 に答える