Почему круг не останавливается при касании линии Python
почему в данном коде круг не останавливается при касании линии? если кто знает как сделать остановку при касании земли то напишите пожалуйста.
import pygame
pygame.init()
FPS = 30
x = 300
y = 200
xL = 200
xL2 = 400
yL = 300
sc = pygame.display.set_mode((600, 400))
clock = pygame.time.Clock()
pygame.display.update()
speedDown = 0
while True:
sc.fill((255,255,255))
clock.tick(FPS)
pygame.draw.circle(sc,(0,0,255),(x,y), 20, 0)
pygame.draw.line(sc,(0,0,0),(xL,yL),(xL2,yL),5)
for i in pygame.event.get():
if i.type == pygame.QUIT:
exit()
keys = pygame.key.get_pressed()
if y == yL:
speedDown = 0
y += 5
else:
speedDown += 1
y += speedDown
pygame.display.update()
Ответы (1 шт):
Автор решения: dIm0n
→ Ссылка
Потому что у вас один раз срабатывает проверка на равенство и круг опускается ниже, а на следующей итерации проверка снова заходит в else и круг продолжает опускаться. Чтобы он "застыл" на линии, можно написать так:
import pygame
pygame.init()
FPS = 30
x = 300
y = 200
xL = 200
xL2 = 400
yL = 300
sc = pygame.display.set_mode((600, 400))
clock = pygame.time.Clock()
pygame.display.update()
speedDown = 0
while True:
sc.fill((255,255,255))
clock.tick(FPS)
pygame.draw.circle(sc,(0,0,255),(x,y), 20, 0)
pygame.draw.line(sc,(0,0,0),(xL,yL),(xL2,yL),5)
for i in pygame.event.get():
if i.type == pygame.QUIT:
exit()
keys = pygame.key.get_pressed()
if y > yL:
y -= 1
else:
y += 1
pygame.display.update()