日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

cocos creator实现类似王者荣耀地图拖动的方法

發布時間:2024/3/26 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos creator实现类似王者荣耀地图拖动的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是今天寫窗口拖動時,忽然想到的一個變式

下面是一個簡單的實現拖動物體的方法:

@property(cc.Node)theNode: cc.Node = null; //這里在外部賦值onLoad() {this.theNode.on(cc.Node.EventType.TOUCH_MOVE, event => {var delta = event.touch.getDelta(); //獲取觸點距離上一次事件移動的距離對象,對象包含 x 和 y 屬性this.theNode.x += delta.x;this.theNode.y += delta.y;}, this)}

這里點擊的物體和移動的物體是同一個物體,但若點擊的物體和移動的物體不是同一個又會有怎樣的效果呢?
自然是在A物體上拖動,B物體會做移動,而A物體不動咯。
這不是王者榮耀拖動地圖的方法嗎?

@property(cc.Node)ClickPart: cc.Node = null; //這里掛載一個空白區域的節點@property(cc.Node)Map: cc.Node = null; //這里掛載地圖的節點speed: number = 1; //修改這個數值可以控制地圖拖動的靈敏度onLoad() {this.ClickPart.on(cc.Node.EventType.TOUCH_MOVE, event => {var delta = event.touch.getDelta();this.Map.x += delta.x*speed;this.Map.y += delta.y*speed;}, this)}

這樣便實現了簡單的地圖拖動,值得注意的是:當拖動的范圍超出自己定義的空白區域時,只要拖動沒有超出屏幕(畫布canvas)的范圍,地圖仍然是能移動的。
以上只是實現了地圖的拖動,若想停止拖動恢復原來的位置,可進行以下操作:

position:cc.Vec2 = null; //定義一個位置進行記錄onLoad() {this.theNode.on(cc.Node.EventType.TOUCH_START, event => {this.position = this.node.position;cc.log(this.position)}, this)this.theNode.on(cc.Node.EventType.TOUCH_END, () => {this.Map.position = this.position;})this.theNode.on(cc.Node.EventType.TOUCH_CANCEL, () => {this.Map.position = this.position;})}

總結

以上是生活随笔為你收集整理的cocos creator实现类似王者荣耀地图拖动的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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