【问题标题】:Python / Pygame PlatformerPython / Pygame 平台游戏
【发布时间】: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

标签: python pygame


【解决方案1】:

这里有两种方法可以解决问题。

  • 方法一:

将brick.png 移动到与您的程序(.py) 文件相同的目录

  • 方法二:

指定路径以及图像名称,例如: 如果brick.png 位于“/home/username/ProgramFolder/brick.png”,那么不要输入

a_block.set_image( "brick.png" )

你会输入

a_block.set_image( "/home/username/ProgramFolder/brick.png" )

如果这两种方法都不起作用,那么您就有一个独特的问题。如需更多信息,请参阅http://www.pygame.org/docs/index.html

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多