这个Mascot Capsule v3 例子建立了一个场景,兼容所有的Sony EriCSSon的移动电话,并且通过K750测试。
这个例子中建立了一个大的立方体,这个大立方体由若干个小一些的立方体构成的,这些小立方体之间的帖图相互交错。在这个大立方体中,由若干个位置固定的,但自由旋转的立方体。在XY平面上放置了一辆汽车,你可以驾驶这辆汽车在这个平面上。
用户可以畅游在这个场景中,并且通过移动电话的按键控制摄影机或者汽车,通过软键你可以切换控制摄影机还是汽车。整个场景的转换是通过下面这些键来改变场景坐标系的。
方向键 左/右:左右移动
方向键 上/下:缩放
数字键 3/9: 上下移动
数字键 4/6: 绕Y轴左右旋转
数字键 2/8: 绕X轴上弦旋转
数字键 1/7: 绕Z轴顺时针逆时针旋转
fire键: 重置整个场景
用户使用下面的这些键控制汽车的移动。当汽车移动的时候摄像机一同移动
方向键 左/右: 左右转向
方向键 上/下: 向前/向后移动
数字键 4/6: 左右移动
fire键: 设置摄像机在汽车的正上方
通过这个例子,您需要分析旋转、移动的对象是整个场景,还是某个物体。移动电话的按键并不是固定的做某个形体的转化。因此要计算出按下按键时哪个是被操作的物体。
获得指定的行为,来改变并做摄影机矩阵的乘法,是由当前程序的状态决定的
译者心得:该例程是Mascot Capsule v3一个综合例子,从一个比较高的视角讲述了一个Mascot Capsule v3程序的全过程。对于刚刚接触Mascot Capsule v3的读者来说理解起来有一个比较困难的地方,就是Mascot Capsule v3中摄影机和物体的关系,在Mascot Capsule v3中物体是被放置在层中的,而每个层都会记录摄影机相对该层的位置,因此在读这样的程序经常会出现这样的情况,摄影机的位置似乎都不同,但实际上又只有一架摄影机。这一点需要读者细细的体会。