所以我開始編程一個小塊放置在Python/pygame遊戲 我寫了代碼,理論上它看起來很完美..它應該能夠放置多個塊。鼠標按下下面是代碼:Pygame:錯誤與放置多個對象:(
import pygame
from pygame.locals import *
pygame.init()
screen=pygame.display.set_mode((640,480),0)
blocklistDIRT=[]
class block(object):
sprite = None
def __init__(self, x, y):
if not block.sprite:
block.sprite = pygame.image.load("dirt.png").convert_alpha()
self.rect = block.sprite.get_rect(top=y, left=x)
blocklist = []
while True:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONUP:
mse=pygame.mouse.get_pos()
blocklist.append(block(mse[0],mse[1]))
if event.type == QUIT:
exit()
for block in blocklist:
screen.blit(block.sprite, block.rect)
pygame.display.update()
而且我每次去放置第二塊的時間。我得到這個錯誤:
回溯(最近通話最後一個):文件 「 C:\ Users \ samis_000 \ Desktop \ blockgame.pyw「,第20行,在 blocklist.append(block(mse [0],mse [1]))TypeError:'block'對象是不可調用的
有人告訴我,我做錯了:(
在您的塊.__ init__中,替換塊的所有發生。與自我。 :D –
爲了避免爲同一個精靈分配多個內存,可以使用工廠類來檢索精靈數據。通過使用一個通用的工廠結構,您可以避免爲您擁有的每個遊戲實體編寫相同的控件(__init__中的if子句)。 – diegoperini
把他們都改成了自己,那也沒用。還是一樣的錯誤!而@diegoperini請進一步解釋你的方法。 –