mhqy 发表于 2010-9-4 10:19:19

【迎新小献】罗培羽—教你制作3DRPG游戏补充篇03——行走



行走斜坡
游戏中的地面并非都是平坦的,有时需要添加一些斜坡。主角如何才能自然地行走在这些斜坡上呢?实现方法其实很简单,只要加上一小段代码就可以了。


if(c_move(myplayer,vector(0,0,-0.5),nullvector,IGNORE_PASSABLE)){;}//行走斜坡

else

{myplayer.z+=.1;}





c_move(myplayer,vector(0,0,-0.5),nullvector,IGNORE_PASSABLE这一句是让角色在如果底下没有地板的情况下往下方移动。c_move有返回值,如果遇到障碍物而不能移动,则返回0,否则返回非零的数。
整段代码的原理就是,当角色脚下没有地板的时候则让角色往下放移动0.5的距离,当脚下有地板的时候则向上移动0.1的距离。在下斜坡时,由于角色往前走后前方没有地板,于是角色往下方移动,形成走下斜坡的姿态。在上斜坡时,由于脚下有地板而角色向上移动,使得角色可以向前走。
整段代码其实是在动态平衡中实现的,角色一上一下,最终形成看似站立的姿态。




如果出现角色陷于地面或者是升起的情况,只要在模型编辑器中调整角色相对于原点的位置即可解决。下图是角色陷于地面的情况。





lw 发表于 2010-9-4 14:19:56

LZ好久没有来幻森了呢,不过印象还有^^

感谢教程~
页: [1]
查看完整版本: 【迎新小献】罗培羽—教你制作3DRPG游戏补充篇03——行走