Creaza un joc Pong in Python
Una dintre cele mai cunoscute aplicatii pentru utilizarea tastaturii in jocurile video este jocul Pong. In aceasta lectie, vom invata cum sa cream un joc Pong simplu in Python, folosind tastatura pentru a controla un paddle.
Incepem prin a crea o fereastra de afisare a jocului si obiectele initiale ale jocului, care includ doua paddle-uri si o minge. Apoi, definim functiile move_paddle_up
si move_paddle_down
pentru a permite utilizatorului sa miste paddle-ul stanga sus si jos prin apasarea tastelor corespunzatoare. De asemenea, vom defini functia move_ball
pentru a face minge sa se miste prin fereastra de joc, si functia check_collision
pentru a verifica daca minge a lovit un paddle sau peretele jocului.
import turtle
# creaza fereastra jocului
wn = turtle.Screen()
wn.title("Pong")
wn.bgcolor("black")
wn.setup(width=600, height=400)
# creaza paddle-uri si mingea
left_paddle = turtle.Turtle()
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.shape("square")
right_paddle.color("white")
right_paddle.shapesize(stretch_wid=5, stretch_len=1)
right_paddle.penup()
right_paddle.goto(250, 0)
ball = turtle.Turtle()
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 3
ball.dy = 3
# defineste functiile pentru miscarea paddle-urilor
def move_left_paddle_up():
y = left_paddle.ycor()
y += 20
left_paddle.sety(y)
def move_left_paddle_down():
y = left_paddle.ycor()
y -= 20
left_paddle.sety(y)
def move_right_paddle_up():
y = right_paddle.ycor()
y += 20
right_paddle.sety(y)
def move_right_paddle_down():
y = right_paddle.ycor()
y -= 20
right_paddle.sety(y)
# asociaza functiile la tastele corespunzatoare
wn.listen()
wn.onkeypress(move_left_paddle_up, "w")
wn.onkeypress(move_left_paddle_down, "s")
wn.onkeypress(move_right_paddle_up, "Up")
wn.onkeypress(move_right_paddle_down, "Down")
# defineste functia pentru miscarea mingii si verificarea coliziunilor
def move_ball():
global ball, ball.dx, ball.dy
# miscarea mingii
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
# verifica coliziunile cu peretii jocului
if ball.ycor() > 190 or ball.ycor() < -190:
ball.dy *= -1
# verifica coliziunile cu paddle-uri
if ball.xcor() < -240 and left_paddle.ycor() + 50 > ball.ycor() > left_paddle.ycor() - 50:
ball.dx *= -1
elif ball.xcor() > 240 and right_paddle.ycor() + 50 > ball.ycor() > right_paddle.ycor() - 50:
ball.dx *= -1
# verifica daca mingea a iesit de pe ecran si reseteaza pozitia
if ball.xcor() > 290 or ball.xcor() < -290:
ball.goto(0, 0)
ball.dx *= -1
# repeta functia
wn.ontimer(move_ball, 10)
# porneste jocul
move_ball()
turtle.done()
Aceasta este o versiune simpla a jocului Pong, dar cu putin efort, poti adauga noi caracteristici, cum ar fi un sistem de punctaj sau o inteligenta artificiala pentru a juca impotriva. In orice caz, aceasta lectie ne arata cum putem folosi tastatura pentru a controla jocurile noastre in Python.