狗狗历险记制作过程(第一天控制3d模型移动)
转http://blog.csdn.net/games_maker/article/details/43953879
心血来潮,准备写个小游戏来玩哈,
第一天花了大约20分钟,做了下面这个效果
访问网站可直接运行 http://www.feekood.com/?path=:/tiantian/KeyMove/MoveDog.ais
按上下左右可以控制狗狗移动(镜头跟随狗狗)
注册www.wooyoogame.com的账户,然后进http://www.wooyoogame.com/resource/5373使用狗狗的模型资源了
clear(); LoadImage("floorImg",":/Samples/Images/floor.png");//读取平台内置图片资源 CreateMipmap("floorImg",16);//创建mipmap图片 Create({type:"box",width:100,height:0.01,length:100,texture:"floorImg",IsAutoTexcoord:true,SimplerState:"wrap"});//创建一个地面 mesh=IncludeAisx(":/Wooyoo/window7/PUG.aisx");//读取wooyoo平台狗狗的模型资源 //狗狗动作支持有 //"RUN,STAND,STAND1,STAND2,STAND3,WALK,STAND4,ATTACKUNARMED,COMBATWOUND,DEATH," //创建一个固定视角的摄像头 SetCamera( camera={ position:{0,5,-5}, target:{0,0,0}, up:{0,0,1}, AllowVRotation:false; //关闭鼠标横向旋转 AllowHRotation:false; //关闭鼠标竖向旋转 AllowZoom: false; //关闭鼠标中间缩放 }); // 设定狗狗的配置信息 myDog= { Action:"stand"; Rotation:0; X:0; Y:0; Z:0; //狗狗的x坐标变化则镜头改变(镜头跟踪狗狗) X:-> { camera.position={owner.x,5,owner.z-5}; camera.target={owner.x,0,owner.z}; }; //狗狗的z坐标变化则镜头改变(镜头跟踪狗狗) Z:-> { camera.position={owner.x,5,owner.z-5}; camera.target={owner.x,0,owner.z}; }; doing:"stand";//自定义属性,狗狗动作 moveSpeed:0;//自定义属性,狗狗动作 rotateAnim:0;//自定义属性,狗狗旋转角度目标 lastRotateAnim:0;//自定义属性,狗狗上次一保存的旋转角度 //旋转角度目标变化,则动态的去改变狗狗模型的显示角度 rotateAnim:-> { owner.rotateSin=sign(owner.lastRotateAnim-owner.rotateAnim); owner.rotateOff=abs(owner.lastRotateAnim-owner.rotateAnim); case(owner.rotateOff<=180, { owner.Rotation<:{owner.lastRotateAnim,owner.rotateAnim,300}; }, { owner.Rotation<:{owner.lastRotateAnim, owner.lastRotateAnim+owner.rotateSin*(owner.rotateOff-180), ,300}; }); owner.lastRotateAnim=owner.rotateAnim; }; //每一帧更新的内置属性,按照doing属性的变化来控制狗狗的模型骨骼动画 IsUpdated:=> { owner.moveSpeed=Sys().UsedTime/1000; case(owner.doing=="stand", { owner.Action="stand"; },owner.doing=="GoUp", { owner.Action="walk"; owner.rotateAnim=0; owner.Z+=owner.moveSpeed; },owner.doing=="GoDown", { owner.Action="walk"; owner.rotateAnim=180; owner.Z-=owner.moveSpeed; },owner.doing=="GoLeft", { owner.Action="walk"; owner.rotateAnim=90; owner.X+=owner.moveSpeed; },owner.doing=="GoRight", { owner.Action="walk"; owner.rotateAnim=270; owner.X-=owner.moveSpeed; }); }; }::mesh; //创建一个狗狗实例 Create(myDog); //定义按键事件信息 keyInfo= { ID:0;//事件编号[内置属性] Key:"";//按键内容[内置属性] IsKeyDown:false;//按键按下事件[内置事件] IsKeyUp:false;//按键弹起事件[内置事件] //定义事件触发器,按下按键则运行表达式 IsKeyDown:=> { // 按上下左右控制狗狗的动作 case(owner.key=="UP",myDog.doing="GoUp", owner.key=="DOWN",myDog.doing="GoDown", owner.key=="LEFT",myDog.doing="GoLeft", owner.key=="RIGHT",myDog.doing="GoRight"); }; //定义事件触发器,弹起按键则运行表达式 IsKeyUp:=> { myDog.frame=0; myDog.doing="stand"; }; }; KeyReceive(keyInfo);//接受按键消息
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。