如何用python编写3D游戏

这篇具有很好参考价值的文章主要介绍了如何用python编写3D游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vizard是一款虚拟现实开发平台软件,从开发至今已走过十个年头。它基于C/C++,运用新近OpenGL拓展模块开发出的高性能图形引擎。当运用Python语言执行开发时,Vizard同时自动将编写的程式转换为字节码抽象层(LAXMI),进而运行渲染核心。

如何用python编写3D游戏,如何用python编写3D游戏

vizard入门

1、加载人物、对象、背景

avatar = viz.addAvatar('xxx.cfg', pos=(0,0,0), euler=(0,0,0))viz.add('xxx.osgb',pos=(0,0,0), euler=(0,0,0))viz.addChild('xxx.obj',pos=(-4,0,7.5))

2、鸽子随机漫步

①利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑟𝑎𝑛𝑑𝑓𝑙𝑜𝑎𝑡()生成随机位置,调用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑤𝑎𝑙𝑘𝑇𝑜()实现鸽子漫步

②利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑐ℎ𝑜𝑖𝑐𝑒()生成随机选择,随机更新鸽子的𝑠𝑡𝑎𝑡𝑒状态

③调用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑤𝑎𝑖𝑡𝑡𝑖𝑚𝑒()实现随机时间的等待

④利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒()实现上述动作序列

pigeon = viz.addAvatar('pigeon.cfg',pos=(2,0,5))random_walk = vizact.walkTo(pos=[vizact.randfloat(1.5,2.5),0,vizact.randfloat(4.5,5.5)])random_animation = vizact.method.state(vizact.choice([1,3],vizact.RANDOM))random_wait = vizact.waittime(vizact.randfloat(2.0,8.0))pigeon_idle = vizact.sequence( random_walk, random_animation, random_wait, viz.FOREVER)pigeon.runAction(pigeon_idle)

3、人物谈话动作

def PersonTalk():  female = viz.addAvatar('vcc_female.cfg', pos=(1,0,8), euler=(-90,0,0))  male = viz.addAvatar('vcc_male2.cfg', pos=(0,0,8), euler=(90,0,0))  female.state(14)  male.state(4)

4、角色移动

①通过𝑣𝑖𝑧. 𝑔𝑒𝑡𝐹𝑟𝑎𝑚𝑒𝐸𝑙𝑎𝑝𝑠𝑒𝑑() ∗ 𝑠𝑝𝑒𝑒𝑑计算移动速度

②初始化欧拉矩阵𝑚1 = 𝑣𝑖𝑧. 𝑀𝑎𝑡𝑟𝑖𝑥. 𝑒𝑢𝑙𝑒𝑟(0,0,0)

③通过𝑣𝑖𝑧. 𝑘𝑒𝑦. 𝑖𝑠𝐷𝑜𝑤𝑛()分析对应鼠标事件,根据人物朝向𝑎𝑣𝑎𝑡𝑎𝑟. 𝑔𝑒𝑡𝐸𝑢𝑙𝑒𝑟()更 新𝑚1平移变换矩阵

④通过𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑒𝑡𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛(𝑚1. 𝑔𝑒𝑡𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛())更新人物位置

⑤通过𝑣𝑖𝑧. 𝑘𝑒𝑦. 𝑖𝑠𝐷𝑜𝑤𝑛()分析对应鼠标事件,设置对应人物动画:

前进、后退动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(2)

左跨步动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(12)

右跨步动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(13)

人物静止动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(1)

def roleMove():  m1 = viz.Matrix.euler(0,0,0)  dm = viz.getFrameElapsed() * speed  temp=avatar.getEuler()[0]*math.pi/180    if viz.key.isDown('w'):    m1.preTrans([dm*math.sin(temp),0,dm*math.cos(temp)])    avatar.state(2)  elif viz.key.isDown('s'):    m1.preTrans([-dm*math.sin(temp),0,-dm*math.cos(temp)])    avatar.state(2)  elif viz.key.isDown('a'):    m1.preTrans([-dm*0.3*math.cos(temp),0,dm*0.3*math.sin(temp)])    avatar.state(12)  elif viz.key.isDown('d'):    m1.preTrans([dm*0.3*math.cos(temp),0,-dm*0.3*math.sin(temp)])    avatar.state(13)  else:    avatar.state(1)      avatar.setPosition(m1.getPosition(), viz.REL_PARENT)

5、获取鼠标位移

通过回调函数callback获取。

def onMouseMove(e):     global mp_x,mp_y    mp_x=e.dx    mp_y=e.dyviz.callback(viz.MOUSE_MOVE_EVENT,onMouseMove)

基于vizard实现的效果:

1.时钟显示当前系统时间

2.两个谈话小人(带动画)

3.第三人称漫游(带动画)

  1. 前进(键盘 W 键)

  2. 后退(键盘 S 键)

  3. 左跨步(键盘 A 键)

  4. 右跨步(键盘 D 键)

  5. 旋转(使用鼠标左右平移)

  6. 上仰(使用鼠标上下平移)

4.其他三维物体/背景

  1. 鸽子做自由漫步

  2. 花瓶摆件

  3. 天空背景

  4. 草地背景

     文章来源地址https://www.toymoban.com/news/detail-624805.html

到了这里,关于如何用python编写3D游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用python编写一个小程序,如何用python做小软件

    本篇文章给大家谈谈用python编写一个小程序,以及如何用python做小软件,希望对各位有所帮助,不要忘了收藏本站喔。 大家好,本文将围绕如何用python写小工具展开说明,python开发小工具项目是一个很多人都想弄明白的事情,想搞清楚python 做的小工具需要先了解以下几个事

    2024年02月02日
    浏览(45)
  • 如何用python编写抢票软件,python爬虫小程序抢购

    大家好,小编来为大家解答以下问题,python小程序抢购脚本怎么写,如何用python编写抢票软件,今天让我们一起来看看吧! 需要的工具 fiddler python 3.8 第一步——抓包 由于之前我在大学的时候就有用python写脚本抢图书馆座位的经验,所以大概了解这种公共预约平台,其实就一

    2024年04月17日
    浏览(33)
  • 用python语言编简单游戏,如何用python写一个游戏

    大家好,小编为大家解答如何用python编写一个简单的小游戏的问题。很多人还不知道用python语言编简单游戏,现在让我们一起来看看吧! Source code download: 本文相关源码 文章目录 1、吃金币 2、打乒乓 3、滑雪 4、并夕夕版飞机大战 5、打地鼠 6、小恐龙 7、消消乐 8、俄罗斯方块

    2024年03月24日
    浏览(54)
  • 利用python编写小游戏,用python编写的游戏

    大家好,小编为大家解答利用python编写小游戏的问题。很多人还不知道用python编写的游戏,现在让我们一起来看看吧! 小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 欢迎和猫妹一起,趣味学Pythonpython简单新年祝福代码。 今日主题 你玩过游戏吗? 你喜

    2024年01月15日
    浏览(44)
  • 用python做简单的小游戏,如何用python写小游戏

    大家好,小编来为大家解答以下问题,初学者怎么用python写简单小游戏教程,如何用python编写一个简单的小游戏,今天让我们一起来看看吧! 1、Python猜拳小游戏代码: 2、import random #导入随机模块 3、 4、num = 1 5、yin_num = 0 6、shu_num = 0 拿虚老 7、while num2: 12、 print(\\\'不能出大于

    2024年02月10日
    浏览(35)
  • python编写一个简单的游戏,python编写小游戏的代码

    大家好,本文将围绕如何用python编写一个简单的小游戏展开说明,用python做一个小游戏代码是一个很多人都想弄明白的事情,想搞清楚python编写小游戏详细教程需要先了解以下几个事情。 今天玩点别的吧都说 Python 除了生孩子什么都能干 咱们今天就用 Python 写个小游戏 贪吃蛇

    2024年02月02日
    浏览(61)
  • python编写小游戏详细教程,python编写小游戏的代码

    大家好,小编来为大家解答以下问题,python编写小游戏详细教程,python编写小游戏的代码,现在让我们一起来看看吧! 今天给大家带来十五个Python小游戏,找回童年的同时学习编程还可以摸鱼, 源码附上结尾领取。 一、接金币(1分) 普通难度:❤ 玩法介绍: 吃金币,控制

    2024年01月17日
    浏览(59)
  • Python编写游戏——拼图游戏

    Python编写游戏需要用到pgzrun模块。但不能用pip install pgzrun进行安装,正确的库名是pgzero,pip install pgzero。  Python版本:Python 3.6.4或以上版本。 pgzrun模块以及一些Python自带的标准模块。 安装Python并添加到环境变量,pip安装需要的相关模块即可。 Python在各个领域都有着丰富的第

    2024年01月17日
    浏览(35)
  • 如何用python写一个和平精英的游戏代码

    哈喽,哈喽~小编认为 和平精英 作为 高端手游 ,很受年轻人喜欢,是手机上必备的游戏软件。 那有没有想过用python来写一个和平精英的代码呢?  想领取更多完整源码或Python学习资料 可点击这行蓝色字体 本次 python 游戏案例以特训岛的室内靶场为例,在特训岛特种兵们可以

    2024年02月10日
    浏览(59)
  • 【Python】如何用pyth做游戏脚本(太简单了吧)

    简述:本文将以4399小游戏《 宠物连连看经典版2 》作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对。对于有兴趣学习游戏脚本的同学有一定的帮助。 运行环境:Win10/Python3.5。 主要模块:win32gui(识别窗口、窗口置顶等操作)、PIL(屏幕截图)、numpy(创建矩阵

    2024年02月10日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包