day 22 (actually, there's no 21) - finished Pong
This commit is contained in:
@ -6,10 +6,11 @@ class Ball(Turtle):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.shape("circle")
|
self.shape("circle")
|
||||||
self.color("white")
|
self.color("white")
|
||||||
|
self.speed("fastest")
|
||||||
self.pu()
|
self.pu()
|
||||||
|
self.move_speed = 0.1
|
||||||
|
|
||||||
self.angle = random.randint(0,45)
|
self.angle = random.randint(0,45)
|
||||||
self.angle = 50
|
|
||||||
self.setheading(self.angle)
|
self.setheading(self.angle)
|
||||||
|
|
||||||
print(self.angle)
|
print(self.angle)
|
||||||
@ -22,6 +23,6 @@ class Ball(Turtle):
|
|||||||
self.setheading(self.angle)
|
self.setheading(self.angle)
|
||||||
|
|
||||||
def bounce_paddle(self):
|
def bounce_paddle(self):
|
||||||
self.angle = -self.angle
|
self.angle = 180 - self.angle
|
||||||
self.setheading(self.angle)
|
self.setheading(self.angle)
|
||||||
|
|
||||||
@ -1,6 +1,8 @@
|
|||||||
from turtle import Turtle, Screen
|
from turtle import Turtle, Screen
|
||||||
from paddle import Paddle
|
from paddle import Paddle
|
||||||
from ball import Ball
|
from ball import Ball
|
||||||
|
from score import Score
|
||||||
|
import time
|
||||||
|
|
||||||
class GameManager():
|
class GameManager():
|
||||||
BOARD_WIDTH=800
|
BOARD_WIDTH=800
|
||||||
@ -21,6 +23,9 @@ class GameManager():
|
|||||||
self.right_paddle = Paddle(350)
|
self.right_paddle = Paddle(350)
|
||||||
self.left_paddle = Paddle(-370)
|
self.left_paddle = Paddle(-370)
|
||||||
|
|
||||||
|
self.right_score = Score(30)
|
||||||
|
self.left_score = Score(-30)
|
||||||
|
|
||||||
self.ball = Ball()
|
self.ball = Ball()
|
||||||
|
|
||||||
def draw_delimiter(self):
|
def draw_delimiter(self):
|
||||||
@ -44,13 +49,31 @@ class GameManager():
|
|||||||
self.control_paddle()
|
self.control_paddle()
|
||||||
self.ball.move()
|
self.ball.move()
|
||||||
|
|
||||||
if abs(self.ball.xcor()) >= 400:
|
if self.ball.xcor() > 400:
|
||||||
self.game_on = False
|
self.game_on = False
|
||||||
|
self.left_score.increment()
|
||||||
|
self.left_score.update()
|
||||||
|
|
||||||
|
if self.ball.xcor() < -400:
|
||||||
|
self.game_on = False
|
||||||
|
self.right_score.increment()
|
||||||
|
self.right_score.update()
|
||||||
|
|
||||||
|
if self.game_on == False:
|
||||||
|
self.ball.clear()
|
||||||
|
self.ball = Ball()
|
||||||
|
self.right_paddle.reset_position(350)
|
||||||
|
self.left_paddle.reset_position(-370)
|
||||||
|
self.game_on = True
|
||||||
|
|
||||||
if abs(self.ball.ycor()) > 280:
|
if abs(self.ball.ycor()) > 280:
|
||||||
self.ball.bounce_wall()
|
self.ball.bounce_wall()
|
||||||
|
|
||||||
print(self.ball.ycor())
|
if (abs(self.ball.xcor() - self.right_paddle.xcor()) <= 20 and abs(self.ball.ycor() - self.right_paddle.ycor()) < 50) or (abs(self.ball.xcor() - self.left_paddle.xcor()) <= 20 and abs(self.ball.ycor() - self.left_paddle.ycor()) < 50):
|
||||||
|
self.ball.bounce_paddle()
|
||||||
|
self.ball.move_speed = self.ball.move_speed * 0.1
|
||||||
|
|
||||||
|
time.sleep(self.ball.move_speed)
|
||||||
|
|
||||||
def control_paddle(self):
|
def control_paddle(self):
|
||||||
self.screen.listen()
|
self.screen.listen()
|
||||||
@ -1,9 +1,7 @@
|
|||||||
from game import GameManager
|
from game import GameManager
|
||||||
from paddle import Paddle
|
from paddle import Paddle
|
||||||
import time
|
|
||||||
|
|
||||||
game = GameManager()
|
game = GameManager()
|
||||||
while game.game_on:
|
while game.game_on == True:
|
||||||
game.game_round()
|
game.game_round()
|
||||||
time.sleep(0.1)
|
|
||||||
game.screen.exitonclick()
|
game.screen.exitonclick()
|
||||||
@ -10,6 +10,9 @@ class Paddle(Turtle):
|
|||||||
self.pu()
|
self.pu()
|
||||||
self.teleport(x=x_pos, y=0)
|
self.teleport(x=x_pos, y=0)
|
||||||
|
|
||||||
|
def reset_position(self, x_pos):
|
||||||
|
self.teleport(x=x_pos, y=0)
|
||||||
|
|
||||||
def up(self):
|
def up(self):
|
||||||
self.goto(x=self.xcor(), y=self.ycor()+20)
|
self.goto(x=self.xcor(), y=self.ycor()+20)
|
||||||
|
|
||||||
18
022/score.py
Normal file
18
022/score.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
from turtle import Turtle
|
||||||
|
|
||||||
|
class Score(Turtle):
|
||||||
|
def __init__(self, x_pos):
|
||||||
|
super().__init__()
|
||||||
|
self.score = 0
|
||||||
|
self.color("white")
|
||||||
|
self.hideturtle()
|
||||||
|
self.pu()
|
||||||
|
self.goto(x=x_pos, y=270)
|
||||||
|
self.write(self.score, move=False, align='center', font=('Arial', 24, 'normal'))
|
||||||
|
|
||||||
|
def increment(self):
|
||||||
|
self.score += 1
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
self.clear()
|
||||||
|
self.write(self.score, move=False, align='center', font=('Arial', 24, 'normal'))
|
||||||
Reference in New Issue
Block a user