用户:流浪狗_用户_酉酉午未戌巳辛戊丙己查看:0 回复:0 评论:0 创建时间:2021-05-01T19:05:28
【作品展示】

【作品介绍】
。
【作品源代码】
from arcade import*
#设置窗体宽和高
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 800
#设置窗体标题
SCREEN_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 - 50 - 5 - 40
lkx,lky = bx,by - 50 - 5 - 50
llx,lly = dx,dy - 50 - 5 - 40
sjx,sjy = cx,cy - 50 - 5 - 30
skx,sky = bx,by - 50 - 5 - 40
slx,sly = dx,dy - 50 - 5 - 30
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)
draw_rectangle_filled(sx,sy,150,50,color.BLUE)
def change_flame(self,time):
self.flame_flag = not self.flame_flag
class MyRocket(arcade.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,SCREEN_TITLE)
run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn