我正在制作一个根据屏幕宽度显示玩家和敌人得分的 Pong 游戏。两个分数都应与屏幕中间保持 20 像素的距离,一切正常,但我遇到了一些问题:
首先,我以一种玩家可以在左右两边的方式制作游戏。初始化分数时,一些属性将传递给 Text 类(如top或centerx),这些属性将定义应放置的位置。我试着这样做:
self.player_score = Text(self.player.score, 32, WHITE,
top = 10, right = SCREEN_WIDTH/2 - 20)
self.enemy_score = Text(self.player.score, 32, WHITE,
top = 10, left = SCREEN_WIDTH/2 + 20)
但由于球员和双方可以改变这不是一个好的解决方案。
其次,我希望文本始终与屏幕中心保持相同的距离,但是当分数增长到两位或更多位数时,文本会占用更多空间。对于右侧,它不是问题,但对于左侧,文本越来越接近屏幕中间。这是我的 Text 类中的 set_value 方法:
def set_value(self, new_value):
if new_value != self._value:
self._value = new_value
self.image = self._create_surface()
self.rect = self.image.get_rect(top = self.rect.top,
bottom = self.rect.bottom,
left = self.rect.left,
right = self.rect.right,
centerx = self.rect.centerx,
centery = self.rect.centery)
我该如何解决这些问题?