我有一个圈子:
pygame.draw.circle(sc, ORANGE, (x, y), r)
在每次迭代中,我将其更改x为or :y+1-1
x += 1
y += 1
这样我可以像这样移动它:
\|/
-o-
/|\
所以我可以将我的圆圈移动45, 90, 135,180度等。
实际上问题是,我怎样才能将我的圆圈移动 110 度?如果我的表面由像素(正方形)组成并且我只能移动,如示例所示?
\|/
-o-
/|\
x += 1.5我不能这样做,因为pygame.draw.circle它只接受整数。
这个话题对我来说很复杂,我很难形成一个问题,但我希望我能够正确解释。
完整代码:
import pygame
def main():
WHITE = (255, 255, 255)
ORANGE = (255, 150, 100)
clock = pygame.time.Clock()
FPS = 60
WIN_WIDTH = 800
WIN_HEIGHT = 600
pygame.init()
sc = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
# радиус и координаты круга
r = 90
x = WIN_WIDTH//2
y = WIN_HEIGHT//2
while 1:
sc.fill(WHITE)
pygame.draw.circle(sc, ORANGE, (x, y), r)
pygame.display.update()
for i in pygame.event.get():
if i.type == pygame.QUIT:
return
x += 1
y -= 1
# Круг двигается на 135 градусов, а хотелось бы например на 110 градусов
clock.tick(FPS)
if __name__ == "__main__":
main()
是的,您需要操纵值
x和y如果你想慢慢移动,并且只接受整数,那么降低 FPS。因此,要移动一定距离,可以使用 for 循环。例如