În această lecție ne vom concentra pe scoreboard și modul în care putem ajusta viteza mingii într-un joc Python. Scoreboard-ul este o caracteristică importantă în multe jocuri, deoarece permite jucătorilor să urmărească scorul și să își compare performanța cu cea a altor jucători.
Pentru a crea un scoreboard în Python, vom utiliza o librărie numită "turtle". Această librărie ne permite să desenăm grafice și forme într-o fereastră grafică, precum și să afișăm text. Pentru a crea un scoreboard, vom utiliza funcția "write" pentru a afișa scorul jocului.
Pentru a ajusta viteza mingii în jocul nostru, vom utiliza o variabilă numită "ball_speed". Această variabilă va determina cât de rapid se mișcă mingea. Putem ajusta viteza mingii prin modificarea valorii acestei variabile în funcție de nevoile noastre.
Iată un exemplu de cod Python care utilizează aceste caracteristici pentru a crea un joc Pong simplu:
import turtle
import time
# Set up the game window
window = turtle.Screen()
window.title("Pong")
window.bgcolor("black")
window.setup(width=600, height=400)
# Create the paddles
left_paddle = turtle.Turtle()
left_paddle.speed(0)
left_paddle.shape("square")
left_paddle.color("white")
left_paddle.shapesize(stretch_wid=5, stretch_len=1)
left_paddle.penup()
left_paddle.goto(-250, 0)
right_paddle = turtle.Turtle()
right_paddle.speed(0)
right_paddle.shape("square")
right_paddle.color("white")
right_paddle.shapesize(stretch_wid=5, stretch_len=1)
right_paddle.penup()
right_paddle.goto(250, 0)
# Create the ball
ball = turtle.Turtle()
ball.speed(40)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 5
ball.dy = -5
# Create the scoreboard
scoreboard = turtle.Turtle()
scoreboard.speed(0)
scoreboard.color("white")
scoreboard.penup()
scoreboard.hideturtle()
scoreboard.goto(0, 180)
scoreboard.write("Player 1: 0 Player 2: 0", align="center", font=("Courier", 24, "normal"))
# Set the ball speed
ball_speed = 0.1
# Move the paddles
def left_paddle_up():
y = left_paddle.ycor()
y += 20
left_paddle.sety(y)
def left_paddle_down():
y = left_paddle.ycor()
y -= 20
left_paddle.sety(y)
def right_paddle_up():
y = right_paddle.ycor()
y += 20
right_paddle.sety(y)
def right_paddle_down():
y = right_paddle.ycor()
y -= 20
right_paddle.sety(y)
# Bind the paddle movement to keys
window.listen()
window.onkeypress(left_paddle_up, "w")
window.onkeypress(left_paddle_down, "s")
window.onkeypress(right_paddle_up, "Up")
window.onkeypress(right_paddle_down, "Down")
# Main game loop
while True:
window.update()
# Move the ball
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
# Check for collisions with the top and bottom walls
if ball.ycor() > 190 or ball.ycor() < -190:
ball.dy *= -1
# Check for collisions with the paddles
if ball.xcor() < -240 and ball.ycor() < left_paddle.ycor() + 50 and ball.ycor() > left_paddle.ycor() - 50:
ball.dx *= -1
ball_speed *= 0.9
elif ball.xcor() > 240 and ball.ycor() < right_paddle.ycor() + 50 and ball.ycor() > right_paddle.ycor() - 50:
ball.dx *= -1
ball_speed *= 0.9
# Check for scores
if ball.xcor() < -290:
scoreboard.clear()
player_2_score += 1
scoreboard.write("Player 1: {} Player 2: {}".format(player_1_score, player_2_score), align="center", font=("Courier", 24, "normal"))
ball.goto(0, 0)
ball_speed = 0.1
time.sleep(1)
elif ball.xcor() > 290:
scoreboard.clear()
player_1_score += 1
scoreboard.write("Player 1: {} Player 2: {}".format(player_1_score, player_2_score), align="center", font=("Courier", 24, "normal"))
ball.goto(0, 0)
ball_speed = 0.1
time.sleep(1)
# Slow down the ball
time.sleep(ball_speed)
Acest joc Pong simplu utilizează scoreboard-ul pentru a afișa scorul și variabila "ball_speed" pentru a ajusta viteza mingii. Putem vedea, de asemenea, cum putem utiliza librăria "turtle" pentru a desena grafice și forme într-o fereastră grafică.
Aceste caracteristici sunt utile nu numai în jocuri, ci și în alte aplicații Python în care trebuie să afișăm informații sau să ajustăm viteza de execuție a codului.