猫史档案馆


【Python作品分享】【36强进10】给航天人的一张明信片(3D)

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


【作品展示】

center_image

 

【作品介绍】

这是一张使用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


回复

上一页1 页 / 共 1下一页
几何空间几何空间

赞!

点赞2


评论