Python 3.x 如何使用turtle在Python中制作焰火
我对python非常陌生,我正在尝试在背景中为我正在使用turtle制作的东西制作一个无休止的动画焰火表演,但不知道如何使其动画化,也就是说,使它们向外爆炸,然后消失,我需要帮助使其无休止地继续下去。请帮忙! 以下是我当前的代码:Python 3.x 如何使用turtle在Python中制作焰火,python-3.x,turtle-graphics,Python 3.x,Turtle Graphics,我对python非常陌生,我正在尝试在背景中为我正在使用turtle制作的东西制作一个无休止的动画焰火表演,但不知道如何使其动画化,也就是说,使它们向外爆炸,然后消失,我需要帮助使其无休止地继续下去。请帮忙! 以下是我当前的代码: import random import turtle t = turtle.Turtle() t.speed(0) #firework color def pen(color): t.color(color) pen('red') def move()
import random
import turtle
t = turtle.Turtle()
t.speed(0)
#firework color
def pen(color):
t.color(color)
pen('red')
def move():
t.pu()
x = random.randint(-165,165)
y = random.randint(-165,165)
t.goto(x,y)
t.pd()
def sky(colour):
wn = turtle.Screen()
wn.bgcolor(colour)
sky('black')
def firework(size):
for num in range (20):
t.fd(size)
t.rt(180-(360/20))
firework(50)
move()
pen('yellow')
firework(75)
move()
pen('orange')
firework(199)
firework(50)
move()
pen('blue')
firework(75)
move()
pen('pink')
firework(199)
firework(50)
move()
pen('yellow')
firework(75)
move()
pen('orange')
firework(199)
firework(50)
move()
pen('blue')
firework(75)
move()
pen('pink')
firework(199)
firework(50)
move()
pen('yellow')
firework(75)
move()
pen('orange')
firework(199)
firework(50)
move()
pen('blue')
firework(75)
move()
pen('pink')
firework(199)
firework(50)
move()
pen('yellow')
firework(75)
move()
pen('orange')
firework(199)
firework(50)
move()
pen('blue')
firework(75)
move()
pen('pink')
firework(199)
可以使用t.clear清除图形,它将清除整个图形。问题是,您的代码的格式有点混乱,所以我假设您希望所有空行都消失
import random
import turtle
t = turtle.Turtle()
t.speed(0)
def pen(color):
t.color(color)
pen('red')
def move():
t.pu()
x = random.randint(-165,165)
y = random.randint(-165,165)
t.goto(x,y)
t.pd()
def sky(colour):
wn = turtle.Screen()
wn.bgcolor(colour)
sky('#10102a')
def firework(size):
for num in range(20):
t.fd(size)
t.rt(180-(360/20))
# Begin Config #
C_BRIGHT_MIN = 0x10
C_BRIGHT_MAX = 0xef
F_SIZE_MIN = 15
F_SIZE_MAX = 200
FIREWORK_PER_CLEAR = 2
# End Config #
while True:
# this generates a random color sequence using RGB
color_r = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
color_g = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
color_b = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
pen('#'+color_r+color_g+color_b)
for i in range(FIREWORK_PER_CLEAR):
firework(random.randint(F_SIZE_MIN, F_SIZE_MAX))
move()
t.clear()
它不会爆炸,如果您希望它像这样,您可以尝试tkinter或pygame,这对图形优化得多您可以使用t.clear清除图形,这将清除整个图形。问题是,您的代码的格式有点混乱,所以我假设您希望所有空行都消失
import random
import turtle
t = turtle.Turtle()
t.speed(0)
def pen(color):
t.color(color)
pen('red')
def move():
t.pu()
x = random.randint(-165,165)
y = random.randint(-165,165)
t.goto(x,y)
t.pd()
def sky(colour):
wn = turtle.Screen()
wn.bgcolor(colour)
sky('#10102a')
def firework(size):
for num in range(20):
t.fd(size)
t.rt(180-(360/20))
# Begin Config #
C_BRIGHT_MIN = 0x10
C_BRIGHT_MAX = 0xef
F_SIZE_MIN = 15
F_SIZE_MAX = 200
FIREWORK_PER_CLEAR = 2
# End Config #
while True:
# this generates a random color sequence using RGB
color_r = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
color_g = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
color_b = hex(random.randint(C_BRIGHT_MIN, C_BRIGHT_MAX))[2:]
pen('#'+color_r+color_g+color_b)
for i in range(FIREWORK_PER_CLEAR):
firework(random.randint(F_SIZE_MIN, F_SIZE_MAX))
move()
t.clear()
它不会爆炸,如果你想让它变成那样,你可以尝试tkinter或pygame,这对图形来说是非常优化的你能试着让代码无休止地运行,并且让焰火不重叠吗?谢谢对因为我不知道你想要什么,所以我在那里设置了一个配置,C_BRIGHT_MIN和C_BRIGHT_MAX是可以使用的颜色范围,避免了光谱的两端。F_SIZE_MIN和F_SIZE_MAX是烟花大小的两个界限。烟花爆竹是指在它们消失之前的数量。你能试着让代码无休止地继续下去,并且让烟花也不要重叠吗?谢谢对因为我不知道你想要什么,所以我在那里设置了一个配置,C_BRIGHT_MIN和C_BRIGHT_MAX是可以使用的颜色范围,避免了光谱的两端。F_SIZE_MIN和F_SIZE_MAX是烟花大小的两个界限。烟火是在它们消失之前的多少次。