2017-01-12 9 views
0

Ich versuche, ein grundlegendes Kartenspiel mit PyGame zu machen. Ich versuche gerade eine einzelne Karte auf den Bildschirm zu zeichnen. Das Seltsame ist, manchmal wird es zeichnen und gelegentlich wird es nicht. Unten ist mein Code:PyGame Sprites Gelegentlich nicht Zeichnung

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

Können Sie beschreiben, was meinen Sie mit „gelegentlich wird es ziehen und es gelegentlich wird nicht "? Flackert es, oder meinst du jedes Mal, wenn du das Skript ausführst, wird es manchmal angezeigt, und manchmal nicht? – Steve

+0

@Steve Es zeichnet entweder das Bild oder nicht, es gibt kein Flimmern (IE, letzteres). Ich habe experimentiert, um ein Ereignis zu zeichnen, und es funktioniert nie. Dies ist mein erster Versuch, etwas mit PyGame zu machen, aber ich kopiere den Code fast genau aus [link] ( – edge6768

+0

), wenn image.get_alpha None ist (https://fr.wikibooks.org/wiki/Pygame/Tom's_Pong) 'sollte sein' wenn image.get_alpha() ist None' – cdonts

Antwort

0

Sie haben mit

die Anzeige in jeder Schleife in der while-Schleife aktualisieren
pygame.display.update() 
Verwandte Themen