用户:会跳绳的霸王龙查看:0 回复:1 评论:0 创建时间:2021-05-23T21:23:43
【作品展示】

【作品介绍】
这是一张使用arcade和vpython制作的给航天人的明信片,音乐为Color-X(3D)部分素材在网盘:
pan.喵
/s/
11Sv483otntO0qP0
B
pNS-nQ
提取码:8jcz
【作品源代码】
'''
作品名称: 给航天人的一张“明信片”
作者: 会跳绳的霸王龙
作品介绍: 这是一张使用arcade和vpython制作的给航天人的明信片,
音乐为Color-X(3D)
'''
from arcade import *
from vpython import *
import winsound
# 设置窗体宽和高
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
# 设置窗体标题
SCREEN_TITLE = "给航天人的一张“明信片”"
class PostCard(arcade.Window):
def __init__(self, width, height, title):
super().__init__(width, height, title)
# 窗体初始化
self.setup()
def setup(self):
# 设置背景颜色
self.bg = Sprite("images/bg.jpg")
self.bg.center_x = SCREEN_WIDTH // 2
self.bg.center_y = SCREEN_HEIGHT // 2
# 信件
self.title = Sprite("images/title.png")
self.title.center_x = SCREEN_WIDTH // 2
self.title.center_y = SCREEN_HEIGHT + self.title.height // 2
# 提示
self.text = Sprite("images/text.png")
self.text.center_x = SCREEN_WIDTH // 2
self.text.center_y = 0 + self.text.height
# 状态
self.okay = False
self.status = False
self.total_time = 0
# 音乐
self.sound = winsound.PlaySound(
"music/3D.wav", winsound.SND_ASYNC)
def on_draw(self):
start_render()
self.bg.draw()
self.title.draw()
if self.okay:
if int(self.total_time) % 2 == 0:
self.text.draw()
def on_update(self,delta_time):
self.total_time += delta_time
if int(self.total_time) % 245+5 == 0:
self.sound = winsound.PlaySound(
"music/3D.wav", winsound.SND_ASYNC)
if self.title.center_y > SCREEN_HEIGHT // 2:
self.title.center_y = self.title.center_y - 2
else:
self.okay = True
def on_key_release(self, symbol, modifiers):
if symbol == key.TAB:
if not self.status and self.okay:
self.status = True
self.watch()
def watch(self):
scene.lights = []
lamp = local_light(pos=vector(-10, 0, 0),
color=color.white)
lamp = local_light(pos=vector(10, 0, 0),
color=color.gray(0.8))
# wallR的网页是
# https://cdn-community.codemao.cn/47/community/
# d2ViXzMwMDFfN
# T
# M5NjI4Ml8wXzE2MjE3NjgxMDk2NjRfNGViZTdkZjI.jpeg
wallR = box(pos=vector(0.01, 0, 0), size=vector(
0.01, 9, 12), texture={'file': "https://cdn-community.codemao.cn/47/community/d2ViXzMwMDFfN喵5NjI4Ml8wXzE2MjE3NjgxMDk2NjRfNGViZTdkZjI.jpeg",
'place': 'all'})
# wallL的网页是
# https://cdn-community.codemao.cn/47/community/
# d2ViXzMwMDFfN
# T
# M5NjI4Ml8wXzE2MjE3NjgxMTg4NTdfZjcwZDUyMTk.png
wallL = box(pos=vector(0, 0, 0), size=vector(
0.01, 9, 12), texture={'file': "https://cdn-community.codemao.cn/47/community/d2ViXzMwMDFfN喵5NjI4Ml8wXzE2MjE3NjgxMTg4NTdfZjcwZDUyMTk.png",
'place': 'all'})
if __name__ == "__main__":
game = PostCard(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
# 运行程序
run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn