【发布时间】:2021-03-27 09:35:23
【问题描述】:
这是我的代码。每次我循环时,它都会产生乌龟闪烁,而不是像我希望的那样干净的运动。
我相信错误在底部的 While True 循环中,我尝试了各种但不成功的方法来消除闪烁。使用 PyCharm 和最新版本的 Python。
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
wn = turtle.Screen()
wn.setup(SCREEN_WIDTH, SCREEN_HEIGHT)
wn.title("Space Arena:")
wn.bgcolor("black")
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
class Sprite():
def __init__(self, x, y, shape, color):
self.x = x
self.y = y
self.shape = shape
self.color = color
dx =0
dy =0
def update(self):
self.x += self.dy
self.y += self.dy
def render(self, pen):
pen.goto(self.x, self.y)
pen.shape(self.shape)
pen.color(self.color)
pen.stamp()
player = Sprite(0, 0, "triangle", "white")
player.dx = -1
player.dy = 0.5
enemy = Sprite(0, 100, "square", "red")
enemy.dx = -1
enemy.dy = 0.3
powerup = Sprite(0, -100, "circle", "blue")
powerup.dx = -1
powerup.dy = 0.1
#sprites list
sprites = []
sprites.append(player)
sprites.append(enemy)
sprites.append(powerup)
#main loop
while True:
#clear screen
pen.clear()
#do game stuff
#uptate sprites
for sprite in sprites:
sprite.update()
#render sprite
for sprite in sprites:
sprite.render(pen)
#update the screen
turtle.update()
wn.mainloop()
【问题讨论】:
标签: python turtle-graphics python-turtle