2017-01-12 6 views
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() 
+0

でwhileループ内のすべてのループの表示を更新する必要があなたは「時折、それが描画されますし、時にはそれはないでしょうによって何を意味するかを説明することはできます"?それはちらつきますか、時にはそれが表示されるスクリプトを実行するたびに、それ以外の時には何を意味するのですか? – Steve

+0

@Steve 画像を描画するかしないか、フリッカー(IE、後者)はありません。私はイベントを描くことを実験したことがありません。これはPyGameで何かをしようとする私の最初の試みですが、私は[link](https://fr.wikibooks.org/wiki/Pygame/Tom's_Pong)からコードをほぼ正確にコピーしています – edge6768

+0

'if image.get_alpha is None 'もし' image.get_alpha()がNoneなら ''でなければならない ' – cdonts

答えて

0

あなたは

pygame.display.update() 
関連する問題