用户:执着的飞电鼠UjXE查看:0 回复:0 评论:0 创建时间:2021-05-08T23:48:59
【作品展示】

【作品介绍】
作品表现火箭发射进入太空,围绕地球旋转
【作品源代码】
from arcade import *
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 800
SCEEN_TITLE = "My Rocket"
class Rocket():
def __init__(self):
self.flame_flag = True
self.click_num = 0
self.angle = 0
def draw_rocket(self):
ox, oy = SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2
ax, ay = ox, oy + 100
bx, by = ox, oy - 100 + self.click_num * 100
cx, cy = bx - 45, by
dx, dy = bx + 45, by
if self.click_num <= 0:
draw_rectangle_filled(cx, cy, 30, 100, color.COBALT)
draw_rectangle_filled(bx, by, 50, 100, color.WHITE)
draw_rectangle_filled(dx, dy, 30, 100, color.COBALT)
if self.click_num <= 1:
draw_rectangle_filled(ox, oy, 30, 100, color.WHITE)
if self.click_num <= 2:
draw_rectangle_filled(ax, ay, 50, 100, color.WHITE)
draw_circle_outline(ax, ay, 10, color.COBALT, 5)
ex, ey = ax - 25, ay + 50
fx, fy = ax + 25, ay + 50
gx, gy = ax, ay + 100
if self.click_num <= 2:
draw_triangle_filled(ex, ey, fx, fy, gx, gy, color.RED)
ljx, ljy = cx, cy - 95
lkx, lky = bx, by - 105
llx, lly = dx, dy - 95
sjx, sjy = cx, cy - 85
skx, sky = bx, by - 95
slx, sly = dx, dy - 85
flame_color = color.TANGERINE
if self.click_num <= 2:
if self.flame_flag:
draw_rectangle_filled(ljx, ljy, 30, 80, flame_color)
draw_rectangle_filled(lkx, lky, 50, 100, flame_color)
draw_rectangle_filled(llx, lly, 30, 80, flame_color)
else:
draw_rectangle_filled(sjx, sjy, 30, 60, flame_color)
draw_rectangle_filled(skx, sky, 50, 80, flame_color)
draw_rectangle_filled(slx, sly, 30, 60, flame_color)
if self.click_num >= 3:
mx, my = ax, ay - 200
draw_circle_filled(mx, my, 100, color.BLUE)
R = 200
sx, sy = mx + R * math.sin(math.radians(self.angle)), my + R *math.cos(math.radians(self.angle))
draw_rectangle_filled(sx, sy, 50, 100, color.WHITE, 180 - self.angle)
draw_rectangle_filled(
sx, sy, 150, 50, color.BLUE, 180 - self.angle)
def change_flame(self, time):
self.flame_flag = not self.flame_flag
class MyRocket(Window):
def __init__(self, width, height, title):
super().__init__(width, height, title)
self.setup()
def setup(self):
set_background_color(color.SILVER)
self.rocket = Rocket()
schedule(self.rocket.change_flame, 0.3)
def on_draw(self):
start_render()
self.rocket.draw_rocket()
def on_mouse_release(self, x, y, button, modifiers):
self.rocket.click_num += 1
def on_update(self, delta_time):
self.rocket.angle += 1
if __name__ == "__main__":
game = MyRocket(SCREEN_WIDTH, SCREEN_HEIGHT, SCEEN_TITLE)
run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn