Anonymous
Хотите создать место, где, когда Paddle_a попадает в любой из блоков, а затем черепаха.bye()
Сообщение
Anonymous » 28 дек 2025, 07:37
У меня возникла проблема с созданием столкновения: если белый блок (paddle_a) попадет в любой из красных блоков, игра закончится. (также хотелось бы знать, как добиться столкновения, при котором, если белый блок во что-то ударяется, он действует как стена/является стеной.
Код: Выделить всё
# Game creation
#Pong game test
import time
import turtle
wn = turtle.Screen()
wn.title("Pong")
wn.bgcolor("Black")
wn.setup(width=800, height=800)
wn.tracer(0)
# paddle a
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.penup()
paddle_a.goto(0, -300)
# Functions
def paddle_a_up():
y = paddle_a.ycor()
y += 30
paddle_a.sety(y)
def paddle_a_down():
y = paddle_a.ycor()
y -= 30
paddle_a.sety(y)
def paddle_a_fun():
paddle_a.forward(20)
def paddle_a_dow():
paddle_a.backward(20)
# Keyboard binding
wn.listen()
wn.onkeypress(paddle_a_up, "w")
wn.onkeypress(paddle_a_down, "s")
wn.onkeypress(paddle_a_fun, "d")
wn.onkeypress(paddle_a_dow, "a")
# red blocks
block_a = turtle.Turtle()
block_a.speed
block_a.shape("square")
block_a.color("red")
block_a.penup()
block_a.goto(0, 0)
block_b = turtle.Turtle()
block_b.speed
block_b.shape("square")
block_b.color("red")
block_b.penup()
block_b.goto(0, 100)
block_c = turtle.Turtle()
block_c.speed
block_c.shape("square")
block_c.color("red")
block_c.penup()
block_c.goto(0, 300)
block_d = turtle.Turtle()
block_d.speed
block_d.shape("square")
block_d.color("red")
block_d.penup()
block_d.goto(0, -200)
block_e = turtle.Turtle()
block_e.speed
block_e.shape("square")
block_e.color("red")
block_e.penup()
block_e.goto(0, -100)
block_f = turtle.Turtle()
block_f.speed
block_f.shape("square")
block_f.color("red")
block_f.penup()
block_f.goto(0, 200)
block_g = turtle.Turtle()
block_g.speed
block_g.shape("square")
block_g.color("red")
block_g.penup()
block_g.goto(0, 100)
block_h = turtle.Turtle()
block_h.speed
block_h.shape("square")
block_h.color("red")
block_h.penup()
block_h.goto(0, 1)
# consequences
while True:
wn.update()
# Border checking
if paddle_a.ycor() > 380:
turtle.bye()
# Collision with red blocks
for collision in block_h:
if collision.distance(paddle_a) < 20:
time.sleep(1)
paddle_a.goto(0, 0)
paddle_a.direction = "stop"
Думал разное, все перепробовал, не получилось. просто нужна помощь, я новичок в кодировании столкновений и разработке игр в целом.
Подробнее здесь:
https://stackoverflow.com/questions/746 ... turtle-bye
1766896645
Anonymous
У меня возникла проблема с созданием столкновения: если белый блок (paddle_a) попадет в любой из красных блоков, игра закончится. (также хотелось бы знать, как добиться столкновения, при котором, если белый блок во что-то ударяется, он действует как стена/является стеной. [code]# Game creation #Pong game test import time import turtle wn = turtle.Screen() wn.title("Pong") wn.bgcolor("Black") wn.setup(width=800, height=800) wn.tracer(0) # paddle a paddle_a = turtle.Turtle() paddle_a.speed(0) paddle_a.shape("square") paddle_a.color("white") paddle_a.penup() paddle_a.goto(0, -300) # Functions def paddle_a_up(): y = paddle_a.ycor() y += 30 paddle_a.sety(y) def paddle_a_down(): y = paddle_a.ycor() y -= 30 paddle_a.sety(y) def paddle_a_fun(): paddle_a.forward(20) def paddle_a_dow(): paddle_a.backward(20) # Keyboard binding wn.listen() wn.onkeypress(paddle_a_up, "w") wn.onkeypress(paddle_a_down, "s") wn.onkeypress(paddle_a_fun, "d") wn.onkeypress(paddle_a_dow, "a") # red blocks block_a = turtle.Turtle() block_a.speed block_a.shape("square") block_a.color("red") block_a.penup() block_a.goto(0, 0) block_b = turtle.Turtle() block_b.speed block_b.shape("square") block_b.color("red") block_b.penup() block_b.goto(0, 100) block_c = turtle.Turtle() block_c.speed block_c.shape("square") block_c.color("red") block_c.penup() block_c.goto(0, 300) block_d = turtle.Turtle() block_d.speed block_d.shape("square") block_d.color("red") block_d.penup() block_d.goto(0, -200) block_e = turtle.Turtle() block_e.speed block_e.shape("square") block_e.color("red") block_e.penup() block_e.goto(0, -100) block_f = turtle.Turtle() block_f.speed block_f.shape("square") block_f.color("red") block_f.penup() block_f.goto(0, 200) block_g = turtle.Turtle() block_g.speed block_g.shape("square") block_g.color("red") block_g.penup() block_g.goto(0, 100) block_h = turtle.Turtle() block_h.speed block_h.shape("square") block_h.color("red") block_h.penup() block_h.goto(0, 1) # consequences while True: wn.update() # Border checking if paddle_a.ycor() > 380: turtle.bye() # Collision with red blocks for collision in block_h: if collision.distance(paddle_a) < 20: time.sleep(1) paddle_a.goto(0, 0) paddle_a.direction = "stop" [/code] Думал разное, все перепробовал, не получилось. просто нужна помощь, я новичок в кодировании столкновений и разработке игр в целом. Подробнее здесь: [url]https://stackoverflow.com/questions/74658261/want-to-create-where-where-when-paddle-a-hits-any-of-the-blocks-then-turtle-bye[/url]