日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

COCOS导航组件

發布時間:2024/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COCOS导航组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@COCOS 導航組件
關于想在COCOS里面實現導航功能,可用于敵人追蹤主角或者是坐標點自動導航;
話不多說,直接上腳本代碼,腳本文件名為lock

cc.Class({extends: cc.Component,properties: {speed:{type:cc.Integer,default:200,tooltip:"運動速度"},},//導航函數walkToDst(dst){//位移,距離,速度,時間,向量var src = this.node.getPosition();console.log("lock里的SRC"+src);var dir = dst.sub(src);var len = dir.mag();if(len<=0){return;}//計算起終點時間this.walkTime = len/this.speed;this.vx= this.speed * dir.x /len;this.vy = this.speed * dir.y/len;this.isWalking = true;this.passedTime = 0;//計時器},start () {this.isWalking = false;this.walkTime = 0;this.vy = 0 ;this.vx = 0 ;this.passedTime = 0;}, update (dt) {if(this.isWalking ===false){return;}this.passedTime +=dt;if(this.passedTime >= this.walkTime){dt -=(this.passedTime - this.walkTime);//糾正刷新間隔}this.node.x += this.vx * dt;this.node.y += this.vy * dt;if(this.passedTime >= this.walkTime){this.isWalking = false;}}, });

其中walkToDst(dst)要求傳入一個坐標參數dst,speed用于更改其速度。
這個腳本相當于提供了一個函數walkToDst(dst)讓它可以自動的去追蹤目標(哪怕是動態目標)

以下是一種引用示例,新建一個腳本,屬性為target,即你要追蹤的目標,然后通過拿到導航組件名(“lock”)去拿到這個方法,然后使用這個函數就可以導航了。
當然應該有更好的引用方式,但是我是初次接觸COCOS,所以目前想到的是在update函數中動態追蹤。

cc.Class({extends: cc.Component,properties: {target:{type:cc.Node,default:null,tooltip:"導航目標"},},// LIFE-CYCLE CALLBACKS:onLoad () {},start () {},update (dt) {var src = this.target.getPosition();var agent = this.node.getComponent("lock");agent.walkToDst(src);}, });

注明:使用的時候一定要把兩個腳本都掛在一個節點上。否則getComponent方法會拿不到lock腳本(即導航腳本)

總結

以上是生活随笔為你收集整理的COCOS导航组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。