我如何获得我的分数来更新我在乒乓球中的文字?
How do I get my score to update my text in pong?
我正在尝试让我的文字在我的球击中球拍后面的墙壁或击中球拍时更新我的分数。我该怎么做?
import pygame
import ball
import paddle
class Points:
def __init__(self,x,y):
self.x=x
self.y=y
self.color= (255,0,0)
font_height = 25
self.Font = pygame.font.SysFont("calibri",font_height)
self.count = 0
self.comp = 0
self.player = 0
self.point = 0
self.ball = ball.Ball(x, y)
self.string = ("player: " + str(self.player)+" computer: " + str(self.comp))
def draw(self,surface):
text_object = self.Font.render(self.string, False, self.color)
text_rect = text_object.get_rect()
text_rect.center = (self.x, self.y)
surface.blit(text_object, text_rect)
def score(self, paddle):
if self.ball.x - self.ball.x2 <= 0:
self.count += 1
self.comp = self.count
elif (self.ball.x < paddle.getX() + paddle.getW()
and self.ball.y > paddle.getY()
and self.ball.y <= paddle.getY() + paddle.getH()):
self.point +=1
self.player = self.point
我的所有数据成员都在我的评分函数之外,但我觉得它是我表面处理的地方
您应该将 self.string = ...
行从 __init__()
方法移动到 draw()
方法中。
我正在尝试让我的文字在我的球击中球拍后面的墙壁或击中球拍时更新我的分数。我该怎么做?
import pygame
import ball
import paddle
class Points:
def __init__(self,x,y):
self.x=x
self.y=y
self.color= (255,0,0)
font_height = 25
self.Font = pygame.font.SysFont("calibri",font_height)
self.count = 0
self.comp = 0
self.player = 0
self.point = 0
self.ball = ball.Ball(x, y)
self.string = ("player: " + str(self.player)+" computer: " + str(self.comp))
def draw(self,surface):
text_object = self.Font.render(self.string, False, self.color)
text_rect = text_object.get_rect()
text_rect.center = (self.x, self.y)
surface.blit(text_object, text_rect)
def score(self, paddle):
if self.ball.x - self.ball.x2 <= 0:
self.count += 1
self.comp = self.count
elif (self.ball.x < paddle.getX() + paddle.getW()
and self.ball.y > paddle.getY()
and self.ball.y <= paddle.getY() + paddle.getH()):
self.point +=1
self.player = self.point
我的所有数据成员都在我的评分函数之外,但我觉得它是我表面处理的地方
您应该将 self.string = ...
行从 __init__()
方法移动到 draw()
方法中。