Search code examples
pythonpygamepong

How do I get my score to update my text in pong?


I am trying to get my text to update my score when my ball hits the wall behind the paddle or when it hits the paddle. How would I go about this?

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

I have all of my data member outside my score function but i feel like it is where I blit the surface


Solution

  • You should move your self.string = ... line from your __init__() method into your draw() method.