狗狗曆險記製作過程(第一天控制3d模型移動),曆險記3d

來源:互聯網
上載者:User

狗狗曆險記製作過程(第一天控制3d模型移動),曆險記3d

心血來潮,準備寫個小遊戲來玩哈,

第一天花了大約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);//接受按鍵訊息

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.