2016-04-26 56 views
1

即时通讯相对较新的编码和理解了python的一些基本知识后,我试图在pygame应用oop 我有这个代码,我想不通为什么矩形赢了不会出现蟒蛇pygame矩形不会绘制/渲染

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() 

有什么想法吗? 在此先感谢:)

回答

0
puddle1 = Puddles(red, 400, 600) 

水坑的y位置低于屏幕高度,所以它的屏幕之外。 ;)尝试将其更改为例如puddle1 = Puddles(red, 400, 200)

另外,第43-46行应该缩进,以便它们在while循环中。

+0

哦谢谢老兄!我犯了多么愚蠢的错误!因为(400,600)(600是边缘)我把这些数字随机,我想检查它是否工作 – Aris

+0

和第43-46行意外地存在,因为这是我第一次问一个问题。感谢你的回答! – Aris

+0

@Aris我很高兴我能帮助你! :)请注册并接受。 – skrx