0
私はPyGameを使って基本的なカードゲームを作ろうとしています。私は現在、画面に1枚のカードを描こうとしています。奇妙なことは、時にはそれを描くことがあり、時折そうしないことです。以下は私のコードです:PyGame Sprites時折描画しない
import pygame
from pygame.locals import *
from socket import *
import sys
import os
import math
import getopt
import random
def load_png(name) :
# Loads an image and returns the image object
fullname = os.path.join('/home/edge/Downloads/Playing Cards/PNG-cards-1.3', name)
image = pygame.image.load(fullname)
if image.get_alpha is None :
image = image.convert()
else :
image = image.convert_alpha()
return image, image.get_rect()
class Card(pygame.sprite.Sprite) :
def __init__(self, suit, val) :
pygame.sprite.Sprite.__init__(self)
self.suit = suit
self.val = val
self.image, self.rect = load_png(val + '_of_' + suit + '.png')
screen = pygame.display.get_surface()
self.area = screen.get_rect()
#self.rect.inflate(-.5, -.5)
def main() :
pygame.init()
pygame.display.set_caption('Card Game Thingy')
screen = pygame.display.set_mode((1250, 650))
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((0, 0, 0))
x = Card('diamonds', '2')
cardSprite = pygame.sprite.RenderPlain(x)
screen.blit(background, (0, 0))
cardSprite.draw(screen)
clock = pygame.time.Clock()
# Game Loop
while True :
clock.tick(60)
for event in pygame.event.get() :
if event.type == QUIT :
return
elif event.type == KEYDOWN :
if event.key == K_DOWN :
return
cardSprite.draw(screen)
if __name__ == '__main__' :
main()
でwhileループ内のすべてのループの表示を更新する必要があなたは「時折、それが描画されますし、時にはそれはないでしょうによって何を意味するかを説明することはできます"?それはちらつきますか、時にはそれが表示されるスクリプトを実行するたびに、それ以外の時には何を意味するのですか? – Steve
@Steve 画像を描画するかしないか、フリッカー(IE、後者)はありません。私はイベントを描くことを実験したことがありません。これはPyGameで何かをしようとする私の最初の試みですが、私は[link](https://fr.wikibooks.org/wiki/Pygame/Tom's_Pong)からコードをほぼ正確にコピーしています – edge6768
'if image.get_alpha is None 'もし' image.get_alpha()がNoneなら ''でなければならない ' – cdonts