我试图在游戏中设置得分我在python/pygame编程.
当我有类似的东西时,我的分数有效:
global score
score = 0
Run Code Online (Sandbox Code Playgroud)
伪:
if player_rect.coliderect(baddie_rect):
score +=1
Run Code Online (Sandbox Code Playgroud)
然后我将分数显示在屏幕上.
但我想在另一个班级的功能中使用这个分数.在主类中调用该函数的位置.
所以
在碰撞功能中我想增加得分,这是在玩家类中.但我想在主要班级打印得分.我有这样的东西使用缩短的代码:
class player:
.
.
.
global score
score = 0
def __init(self):
self.score=0
def get_score(self):
return self.score
def set_score(self, score):
self.score = score
def collision():
.
.
if player_rect.coliderect(baddie_rect):
self.score +=1
Run Code Online (Sandbox Code Playgroud)
当碰撞发生时我试图获得分数:
class main():
player = player()
player.colision()
print player.get_score()
Run Code Online (Sandbox Code Playgroud)
什么都没发生,分数不增加!
有什么建议?
class Player:
def __init(self):
self.score=0
def collision():
if player_rect.coliderect(baddie_rect):
self.score +=1
class main():
player = Player()
player.collision()
print(player.score)
Run Code Online (Sandbox Code Playgroud)
这里没有全局变量.在Python中,您几乎不需要getter或setter.只需score直接访问或设置实例属性即可.如果您需要self.score执行更复杂的操作,可以将其设置为属性,这样您就可以在不更改语法的情况下定义类似getter/setter的行为.
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |