Irrlicht学习备忘录——4 Movement

本文档详细介绍了如何使用Irrlicht 3D引擎进行场景节点的运动控制,包括直接操纵场景节点ISceneNode和通过ISceneNodeAnimator间接控制。通过实例展示了创建飞行圆周和直线动画控制器,并解释了如何处理用户输入事件,实现手动控制场景节点的移动。
摘要由CSDN通过智能技术生成

4 Movement

官方代码($sdk)\examples\04.Movement


这个例子讲的是如何使场景节点动起来。

我在学习了官方例子,并仔细看了irr源码后,个人觉着使irr场景节点动起来的方法,严格的说就是官方例子里的两种方法。第一种是直接操纵场景节点ISceneNode调整位置;第二种是通过ISceneNodeAnimator间接操作场景节点ISceneNode调整位置。但似乎官方教程只是为了给大家清楚irr能干什么,并没有对irr进行更深入的讲解。从源码里可以看出,ISceneNodeAnimator并不仅仅是irr内部使用的接口,也是给使用者扩展的接口。通过自己扩展ISceneNodeAnimator,同样也能够操作ISceneNode位置,但这种方法说严格了,也是例子里的方法,只是它没教如何做扩展。

直接操纵场景节点ISceneNode调整位置,这在前面的例子里已经使用过,只是对每个节点初始化时使用一次setPosition方法,将场景节点放到预定的位置,因此场景节点就是静态的,并没有动起来。每隔一段时间,就使用一次setPosition方法将场景节点放到不同的位置,场景节点就成动起来的了。按这样说,使场景节点动起来很简单嘛,只需要在前面例子中的循环内对场景节点的位置进行重新设置就行了。想法虽然没错,但如果场景节点很多很多,而且每个场景节点的运动方法都不一样,这方法还行得通吗?我自认水平低,我可没这水平管理好那么多节点做不同的运动。irr提供的ISceneNodeAnimator就是一个用来自动控制场景节点运动的控制器。在场景节点上添加一个ISceneNodeAnimator后,这个场景节点的运动就受ISceneNodeAnimator控制了。用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值