教你一招!【vizard】如何 用python写3D游戏

vizard介绍

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

vizard入门

加载人物、对象、背景

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))

鸽子随机漫步

①利用. ()生成随机位置,调用. ()实现鸽子漫步

②利用. ℎ()生成随机选择,随机更新鸽子的状态

③调用. ()实现随机时间的等待

④利用. ()实现上述动作序列

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)

人物谈话动作

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)

角色移动

①通过. () ∗ 计算移动速度

②初始化欧拉矩阵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)

获取鼠标位移

通过回调函数callback获取

def onMouseMove(e):

    global mp_x,mp_y

    mp_x=e.dx

    mp_y=e.dy

viz.callback(viz.MOUSE_MOVE_EVENT,onMouseMove)

基于vizard实现的效果:

时钟显示当前系统的时间

两个谈话小人(带动画)

第三人称漫游(带动画)

前进(键盘 W 键)

后退(键盘 S 键)

左跨步(键盘 A 键)

右跨步(键盘 D 键)

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

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

其他三维物体/背景

鸽子做自由漫步

花瓶摆件

天空背景

草地背景


原文链接:https://blog.csdn.net/weixin_45825073/article/details/122031933

你可能感兴趣的:(教你一招!【vizard】如何 用python写3D游戏)