狗狗历险记制作过程(第一天控制3d模型移动)

心血来潮,准备写个小游戏来玩哈,,

第一天花了大约20分钟,做了下面这个效果

访问网站可直接运行 ?path=:/tiantian/KeyMove/MoveDog.ais

按上下左右可以控制狗狗移动(镜头跟随狗狗)

注册的账户,然后进使用狗狗的模型资源了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);//接受按键消息

深重如溺入蓝色的海洋,无法呼吸。

狗狗历险记制作过程(第一天控制3d模型移动)

相关文章:

你感兴趣的文章:

标签云: