导语:中秋将至,用python绘制一个月亮。给身边的人带来惊喜和浪漫。
1.引言:
效果如下:
2.代码展示:
from ursina import *
def input(key):
if key == "escape":
quit()
def update():
# 月亮的旋转速度
entity.rotation_y += 0.5
entity.rotation_x += 1
entity.rotation_z += 0.5
def main():
# 设置形状并加载图像
entity.model = "sphere"
entity.texture = "./Moon.png"
# 设置旋转角及远近
entity.scale = 2
entity.rotation_x = 45
entity.rotation_y = 45
entity.rotation_z = 45
# 加载音频
Audio("./2.mp3", loop=True, pitch=random.uniform(.5, 1))
# 创建背景图像实体
background = Entity(model='quad', texture='./background.png', scale=(16, 9, 1))
# 运行
EditorCamera()
app.run()
if __name__ == '__main__':
app = Ursina()
window.fullscreen = True # 设置为全屏
entity = Entity() # 创建实体化对象
main()
3.知识点
- Ursina :是一个基于 Python 的游戏开发框架,它简化了创建 2D 和 3D 游戏的过程。这里我们使用该库实现3D效果。
- input(key) 函数:处理键盘输入,如果按下 Escape 键,则退出应用。
- update() 函数:每帧更新函数,用于旋转 entity 实体,使其在 y、x 和 z 轴上旋转。
- main() 函数:是程序的主入口,创建了 Ursina 应用实例 app,设置窗口全屏,并初始化了一个空的实体 entity。
- entity.model = “sphere”:设置实体的模型为球体,即月球的形状。
- entity.texture = “./Moon.png”:加载月球的纹理图像,用于实体的表面。
- entity.scale = 2:将实体缩放为原大小的两倍。
- Audio(“./2.mp3”, loop=True, pitch=random.uniform(.5, 1)):加载名为 2.mp3 的音频文件,并设置循环播放和随机音调。
- background = Entity(model=‘quad’, texture=‘./background.png’, scale=(16, 9, 1)):创建一个背景图像实体,使用 quad 模型,加载background.png 纹理,并设置比例为 16:9。
- EditorCamera():使用编辑器相机视角,允许用户在运行时调整视角。
- if name == ‘main’::确保只有直接运行该脚本时才会执行。
- app = Ursina():创建 Ursina 应用实例。
- window.fullscreen = True:将窗口设置为全屏显示。
- entity = Entity():创建一个空的实体对象,用于加载后续的模型和纹理。
- main():调用主函数 main(),启动整个应用的执行流程。
4.总结
这段代码展示了如何使用 Ursina 创建一个简单的游戏场景,包括加载模型、纹理和音频,并设置它们的属性和行为,以及如何在全屏窗口中运行应用。