在游戏设计中有以下关系运算符:
< | 小于 | <= | 小于等于 |
> | 大于 | >= | 大于等于 |
== | 等于 | != | 不等于 |
目标: 判断小狗的瞬时速度的取值范围,来切换相应的动作
实例:
图5-3-1-1
首先我们将目标转换成逻辑描述:在角色绘制事件中判断:
如果小狗的速度为0
小狗角色的动画切换为在最高点的动画
否则如果小狗的速度方向向上,速度介于10到24
小狗角色的动画切换为起跳阶段的动画
否则如果小狗的速度方向向上,速度介于0到10
小狗角色的动画切换为上升阶段的动画
否则如果小狗的速度方向向下,速度介于0到10
小狗角色的动画切换为下落阶段的动画
否则如果小狗的速度方向向下,速度介于10到24
小狗角色的动画切换为着地阶段的动画
接着我们开始用MC来实现上述的逻辑:
//yvelocity是系统已经定义好的变量,用来表示角色的y轴速度,值为正,表示下落运动;值为负表示上升运动。
{
ChangeAnimation("EventActor", "s2", FORWARD);//这是切换动画的函数,s2是动画名
}else if( yvelocity >=- 24 && yvelocity <- 10)
//起跳阶段 这里“&&”表示只有当两边的关系表达式都为真时,整个表达式才为真
{
ChangeAnimation("EventActor", "s0", FORWARD);
}else if( yvelocity >- 10 && yvelocity < 0)//上升阶段
{
ChangeAnimation("EventActor", "s1", FORWARD);
}else if( yvelocity > 0 && yvelocity < 10)//下落阶段
{
ChangeAnimation("EventActor", "s3", FORWARD);
}else if( yvelocity > 10 && yvelocity <= 24)//着地阶段
{
ChangeAnimation("EventActor", "s4", FORWARD);
}从上面的例子中,我们可以得出
关系表达式的一般形式为:表达式 关系运算符 表达式
例如:a > b ,(x + 23) /y > z * z
如果这个关系表达式是成立的,我们称之为“真”,用非0表示;反之,我们称之为“假”,用0表示注意:
我们往往有这么一种写法:12 < x<20,这在游戏设计中,没办法直接使用,只能拆成两步:x > 12并且x < 20。
Demo下载地址:http://www.dongyo.cn/bbs/forum.php?mod=viewthread&tid=2487&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline