PYTHON
These four things need to be added to my code
1) add an additional ball after a certain score
2) add a random ball spawning
3) add a 3rd playet at the top of bottom
3) change background after a certain score
import pygame
pygame.init()
SCR_WID, SCR_HEI = 640, 480
class Player():
def __init__(self, screen, x, y):
self.screen = screen
self.x, self.y = x, y
self.speed = 3
self.padWid, self.padHei = 8, 64
self.score = 0
self.scoreFont = pygame.font.Font("freesansbold.ttf", 64)
def scoring(self, name, x, y):
scoreBlit = self.scoreFont.render(str(self.score), 1, (255, 255, 255))
self.screen.blit(scoreBlit, (x, y))
if self.score == 10:
print (name + " wins!")
exit()
def movement(self, key_up, key_down):
keys = pygame.key.get_pressed()
if keys[key_up]:
self.y -= self.speed
elif keys[key_down]:
self.y += self.speed
if self.y <= 0:
self.y = 0
elif self.y >= SCR_HEI-64:
self.y = SCR_HEI-64
def draw(self):
pygame.draw.rect(self.screen, (255, 255, 255), (self.x, self.y, self.padWid, self.padHei))
class Ball():
def __init__(self, screen, player: Player, enemy: Player):
self.screen = screen
self.player = player
self.enemy = enemy
self.x, self.y = SCR_WID/2, SCR_HEI/2
self.speed_x = -3
self.speed_y = 3
self.size = 8
def movement(self):
self.x += self.speed_x
self.y += self.speed_y
#wall col
if self.y <= 0:
self.speed_y *= -1
elif self.y >= SCR_HEI-self.size:
self.speed_y *= -1
if self.x <= 0:
self.__init__(self.screen, self.player, self.enemy)
self.enemy.score += 1
elif self.x >= SCR_WID-self.size:
self.__init__(self.screen, self.player, self.enemy)
self.speed_x = 3
self.player.score += 1
##wall col
#paddle col
#player
for n in range(-self.size, self.player.padHei):
if self.y == self.player.y + n:
if self.x <= self.player.x + self.player.padWid:
self.speed_x *= -1
break
n += 1
#enemy
for n in range(-self.size, self.enemy.padHei):
if self.y == self.enemy.y + n:
if self.x >= self.enemy.x - self.enemy.padWid:
self.speed_x *= -1
break
n += 1
##paddle col
def draw(self):
pygame.draw.rect(self.screen, (255, 255, 255), (self.x, self.y, 8, 8))
def main():
screen = pygame.display.set_mode((SCR_WID, SCR_HEI))
pygame.display.set_caption("Pong")
pygame.font.init()
clock = pygame.time.Clock()
FPS = 60
player = Player(screen, 16, SCR_HEI/2)
enemy = Player(screen, SCR_WID-16, SCR_HEI/2)
ball = Ball(screen, player, enemy)
while True:
#processss
for event in pygame.event.get():
if event.type == pygame.QUIT:
print ("Game exited by user")
exit()
##process
#logic
ball.movement()
player.movement(pygame.K_w, pygame.K_s)
enemy.movement(pygame.K_UP, pygame.K_DOWN)
##logic
#draw
screen.fill((0, 0, 128))
ball.draw()
player.draw()
player.scoring("Player 1", 32, 16)
enemy.draw()
enemy.scoring("Enemy", SCR_HEI + 92, 16)
##draw
#_______
pygame.display.flip()
clock.tick(FPS)
if __name__ == "__main__":
main()
PYTHON These four things need to be added to my code 1) add an additional ball after a certain score 2) add a random bal
-
- Site Admin
- Posts: 899603
- Joined: Mon Aug 02, 2021 8:13 am