2016-04-26 13 views
1

ich bin relativ neu zu Codierung und nachdem ich einige Grundlagen in Python zu verstehen Ich versuche, OOP in pygame Ich habe diesen Code und ich kann nicht herausfinden, warum das Rechteck gewonnen erscheint nichtpython-pygame Rechteck wird nicht zeichnen/rendern

import pygame 
import time 

pygame.init() 

screen = pygame.display.set_mode((800,600)) 
pygame.display.set_caption("EXAMPLE") 

clock = pygame.time.Clock() 

white = (255,255,255) 
black = (0,0,0) 
red = (255,0,0) 
FPS = 30 

class Puddles(pygame.sprite.Sprite): 
    puddle_width = 100 
    puddle_height = 20 
    def __init__(self,color,x,y): 
     pygame.sprite.Sprite.__init__(self) 
     self.x = x 
     self.y = y 
     self.color = color 
     self.image = pygame.Surface((Puddles.puddle_width,Puddles.puddle_height)) 
     self.image.fill(self.color) 
     self.rect = self.image.get_rect() 
     self.rect.x = self.x # i think problem's here because if I type specific integers for x and y the tile will appear 
     self.rect.y = self.y 

all_sprites = pygame.sprite.Group() 
puddle1 = Puddles(red, 400, 600) 
all_sprites.add(puddle1) 
gameExit = False 

while not gameExit: 
    clock.tick(FPS) 
    for event in pygame.event.get(): 
     print event 

     if event.type == pygame.QUIT: 
      gameExit = True 

all_sprites.update() 
screen.fill(white) 
all_sprites.draw(screen) 
pygame.display.flip() 


pygame.quit() 
quit() 

irgendwelche ideen? Dank im Voraus :)

Antwort

0
puddle1 = Puddles(red, 400, 600) 

Die y-Position der flüssigen Masse unter der Bildschirmhöhe ist, so dass es außerhalb des Bildschirms. ;) Versuchen Sie, es zum Beispiel zu puddle1 = Puddles(red, 400, 200) zu ändern.

Außerdem sollten die Zeilen 43-46 eingerückt werden, damit sie in der while-Schleife sind.

+0

oh danke, Alter! Was für ein dummer Fehler, den ich gemacht habe! weil (400,600) (600 ist die Kante) ich diese Zahlen nach dem Zufallsprinzip und ich wollte überprüfen, ob es funktioniert – Aris

+0

und Linien 43-46 sind versehentlich da, weil dies das erste Mal ist, dass ich eine Frage stelle. Danke für die Antwort! – Aris

+0

@Aris Ich bin froh, dass ich dir helfen konnte! :) Bitte upvote und akzeptieren. – skrx