我正在用 pygame 制作游戲并練習 OOP。我讀過一個 pygame 教程,因為我的游戲有點不同,所以我只采用了我需要的部分,例如移動、pygame.init() 等。當我運行腳本時,沒有任何錯誤只是pygame 歡迎信息。我已經檢查過我是否真的添加了代碼行來啟動程序并且我確實添加了。我還檢查了我是否制作了屏幕,我也這樣做了。 1 import pygame 2 from pygame.locals import * 3 4 class character: 5 def __init__(self, Name, Picture, Attack1, WaitAttack1, Attack2, WaitAttack2, Heal1, WaitHeal1, SuperAttack1, WaitSuperAttack1): 6 self.Name = Name 7 self.Player = pygame.image.load(Picture) 8 self.Coins = 0 9 self.Backpack = "Empty" 10 self.WorldMap = "Comming soon" 11 self.Health = 250 12 self.Attack1 = Attack1 13 self.WaitAttack1 = WaitAttack1 14 self.Attack2 = Attack2 15 self.WaitAttack2 = WaitAttack2 16 self.Heal1 = Heal1 17 self.WaitHeal1 = WaitHeal1 18 self.SuperAttack1 = SuperAttack1 19 self.WaitSuperAttack1 = WaitSuperAttack1 20 self.Keys = [False, False, False, False] 21 self.playerpos = [100,100] 22 23 def directions(self): 24 25 if self.Keys[0]: 26 self.playerpos[1] -= 5 27 elif self.Keys[2]: 28 self.playerpos[1] += 5 29 if self.Keys[1]: 30 self.playerpos[0] -= 5 31 elif self.Keys[3]: 32 self.playerpos[0] += 5 33 34 35 36 class Slade(character): 37 def __init__(self): 38 character.__init__(self, "Slade", "Slade.png", 40, 20, 50, 25, 10, 5, 30, 25)PS:我是 OOP 的新手。所以請盡量忽略我的代碼很糟糕的事實。
2 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
首先,您必須將類分配給一個變量。然后調用一個函數,因為在分配類之后,唯一會運行的就是函數__init__()
。例如
if __name__ == '__main__': obj = Slade() obj.movement()
您的代碼中還有一些其他問題,例如def __init__(self): 37 def __init__(self):
將一個類分配給一個變量然后調用一個函數將運行所需的函數。另請注意,您只能使用該類__init__()
一次。
添加回答
舉報
0/150
提交
取消