用户:诗翼没实力查看:0 回复:0 评论:0 创建时间:2023-08-15T15:52:32
【作品展示】

【作品介绍】
太阳系探索(未完成)
【作品源代码】
from vpython import *
import Rocket
earth = sphere(texture='earth.png', radius=100, pos=vec(0, -100, 0))
fire = sphere(texture='fire.jpg', radius=75,
pos=vec(0, 2114, -2), emissive=True)
water = sphere(texture='water.jpg', radius=60, pos=vec(0, 550, 37))
gold = sphere(texture='gold.jpg', radius=96,
pos=vec(0, 1900, -146), emissive=True)
sun = sphere(texture='sun.jpg', radius=300,
pos=vec(0, 1200, -27), emissive=True)
moon = sphere(texture='moon.png', radius=50,
pos=vec(0, 200, -200), emissive=True)
scene.waitfor('keydown')
sleep(2)
fly_rocket = Rocket.fly_rocket
fly_rocket.h_axis = vec(0, 0, 1)
fly_rocket.h2_axis = vec(0, 0, -1)
fly_rocket.z_axis = vec(1, 0, 0)
fly_rocket.z2_axis = vec(-1, 0, 0)
dt = 0.01
while True:
key = keysdown()
if ' ' in key:
rate(100)
fly_rocket.pos += fly_rocket.v * dt
scene.center += fly_rocket.v * dt
if 'left' in key:
# 火箭左转
fly_rocket.rotate(angle=0.01, axis=fly_rocket.h_axis)
fly_rocket.v = rotate(fly_rocket.v, angle=0.01, axis=fly_rocket.h_axis)
fly_rocket.h_axis = rotate(fly_rocket.h_axis, angle=0.01, axis=fly_rocket.h_axis)
if 'right' in key:
# 火箭右转
fly_rocket.rotate(angle=0.01, axis=fly_rocket.h2_axis)
fly_rocket.v = rotate(fly_rocket.v, angle=0.01, axis=fly_rocket.h2_axis)
fly_rocket.h2_axis = rotate(fly_rocket.h2_axis, angle=0.01, axis=fly_rocket.h2_axis)
if 'up' in key:
# 火箭向前转
fly_rocket.rotate(angle=0.01, axis=fly_rocket.z_axis)
fly_rocket.v = rotate(fly_rocket.v, angle=0.01, axis=fly_rocket.z_axis)
fly_rocket.z_axis = rotate(fly_rocket.z_axis, angle=0.01, axis=fly_rocket.z_axis)
if 'down' in key:
# 火箭向后转
fly_rocket.rotate(angle=0.01, axis=fly_rocket.z2_axis)
fly_rocket.v = rotate(fly_rocket.v, angle=0.01, axis=fly_rocket.z2_axis)
fly_rocket.z2_axis = rotate(fly_rocket.z2_axis, angle=0.01, axis=fly_rocket.z2_axis)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn