【发布时间】:2015-06-01 09:05:08
【问题描述】:
我正在尝试在pygame 中制作游戏,作为tutorial I'm watching 中的练习,这个家伙让我在屏幕上的不同位置制作了 2 个不同颜色的块。效果很好,但随后他向我展示了如何使用 .png 图片更改其中一个块。我完全按照所有内容进行操作,但由于某种原因,窗口打开了大约半秒钟,然后出现错误。
我已多次观看该视频,但我无法让它发挥作用。这是我的完整代码,就像现在一样。
import pygame
from colors import *
class Block( pygame.sprite.Sprite ):
def __init__( self, color = blue, width = 64, height = 64 ):
super( Block, self ).__init__()
self.image = pygame.Surface( ( width, height ) )
self.image.fill( color )
self.rect = self.image.get_rect()
def set_position( self, x, y ):
self.rect.x = x
self.rect.y = y
def set_image( self, filename = None ):
if ( filename is not None ):
self.image = pygame.image.load( filename )
self.rect = self.image.get_rect()
if ( __name__ == "__main__" ):
pygame.init()
window_size = window_width, window_height = 640, 480
window = pygame.display.set_mode( window_size, pygame.RESIZABLE )
pygame.display.set_caption( "Test Game" )
window.fill( white )
clock = pygame.time.Clock()
frames_per_second = 60
block_group = pygame.sprite.Group()
a_block = Block()
a_block.set_image( "brick.png" )
a_block.set_position( window_width/2, window_height/2 )
another_block = Block( red )
another_block.set_position( 100, 100 )
block_group.add( a_block, another_block )
block_group.draw( window )
running = True
while ( running ):
for event in pygame.event.get():
if ( event.type == pygame.QUIT ):
running = False
clock.tick( frames_per_second )
pygame.display.update()
pygame.quit()
如果有人可以帮助我,我会很高兴的。谢谢。
【问题讨论】:
-
你得到什么错误?
-
您发布的代码的缩进搞砸了。
-
是的,我对缩进感到抱歉。我试图按原样上传它,但网站一直告诉我缩进 4 个空格。这非常令人沮丧。我可以向你保证,所有的缩进都是正确的。它让我很难尝试复制和粘贴错误 Zizouz212。让我再尝试一次。是,Traceback(最近一次调用最后一次):第 45 行,在
a_block.set_image("brick.png") 中。然后它还说,第 24 行,在 set_image self.image = pygame.image.load( filename ) pygame.error: Couldn't open brick.png