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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Cocos Creator 实现虚拟摇杆

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cocos Creator 实现虚拟摇杆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1、引言
    • 2、準備
    • 3、原理分析
    • 4、場景搭建
    • 5、代碼
    • 6、效果展示
    • 7、Demo示例下載
    • 8、結束語


1、引言

??近日準備做一個休閑游戲,需要用到虛擬搖桿!于是摸索一番,便有一得,這里分享出來,有不足之處還望大家來指正!

2、準備

  • Cocos Creator v2.1.4
  • VsCode

3、原理分析

??作為搖桿,需要有一個節點進行觸摸,還需要約束搖桿能夠移動的范圍,我們可以通過相似三角形等比例限定(x,y)。如下圖
??通常我們操作搖桿之后我們需要把搖桿放置在搖桿背景的中心。我們在觸摸結束的時候重新歸置搖桿的位置。

4、場景搭建

??我們只需要兩個素材,一個是搖桿背景,一個是搖桿。如下圖所示:


我們只需搭好搖桿,放置一個玩家就可以了,如下圖所示:

5、代碼

cc.Class({extends: cc.Component,properties: {/** 搖桿移動中心 */midNode: {default: null,type: cc.Node,displayName: '移動中心節點'},/** 搖桿背景做監聽,體驗好些 */joyBk: {default: null,type: cc.Node,displayName: '搖桿背景節點'},/** 搖桿最大移動半徑 */maxR: {default: 100,displayName: '搖桿活動半徑'},/** 搖桿移動回調 */joyCallBack: {default: [],type: cc.Component.EventHandler,displayName: '搖桿移動回調',tooltip: '觸發touchmove后分發數據'}},onLoad () {// 歸位this.goBackMid();},start () {this.joyBk.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this);this.joyBk.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this);this.joyBk.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this);this.joyBk.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this);},/** 回歸中心 */goBackMid () {this.joyBk.setPosition(0, 0);this.midNode.setPosition(0, 0);},onTouchStart (e) {let pos = this.node.convertToNodeSpaceAR(e.getLocation());this.clampPos(pos);this.midNode.setPosition(pos.x, pos.y);let angle = this.covertToAngle(pos);console.log(this.joyCallBack);// 觸發回調this.joyCallBack[0].emit([pos, angle]);},onTouchMove (e) {let pos = this.node.convertToNodeSpaceAR(e.getLocation());this.clampPos(pos);this.midNode.setPosition(pos.x, pos.y);let angle = this.covertToAngle(pos);// 觸發回調this.joyCallBack[0].emit([pos, angle]);},onTouchEnd (e) {this.goBackMid();this.joyCallBack[0].emit([cc.v2(0, 0),null]);},/** 根據半徑限制位置 */clampPos (pos) {let len = pos.mag();if (len > this.maxR-0.5) {let k = this.maxR / len;pos.x *= k;pos.y *= k;}},/** 根據位置轉化角度 */covertToAngle (pos) {let r = Math.atan2(pos.y, pos.x);let d = cc.misc.radiansToDegrees(r);return d;}, });

??由于代碼中已經給出了詳盡的注釋,這里也就不再啰里啰嗦了。啟動該工程,只要我們拖動搖桿就可以看到如下效果!

6、效果展示

??下面是代碼實現的效果:

7、Demo示例下載

??為了方便大家,當然如果有不明白的童鞋也可以在這里點此下載Demo示例!

8、結束語


The End
??好了,今天的分享就到這里,如有不足之處,還望大家及時指正,隨時歡迎探討交流!!!


喜歡的朋友們,請收藏、點贊、評論!您的肯定是我寫作的不竭動力!

總結

以上是生活随笔為你收集整理的Cocos Creator 实现虚拟摇杆的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜美女网站 | 中文天堂在线观看 | 国产最新毛片 | 啪啪激情网 | 国产精品自拍视频 | 一级二级av | 91桃色视频在线观看 | 成年人免费在线视频 | 可以在线观看的av网站 | 无码精品黑人一区二区三区 | 亚洲精品午夜国产va久久成人 | 日本精品一区二区三区在线观看 | 在线免费成人网 | 性少妇bbw张开 | 国产一级免费视频 | 天堂久久精品忘忧草 | 成人欧美一区二区三区在线播放 | 一本久道在线 | va视频在线观看 | 久久久久久亚洲精品 | 中文字幕第10页 | 乖疼润滑双性初h | 毛片xxx| 国产精品-区区久久久狼 | 性chinese天美传媒麻 | 国产黄色免费观看 | 狠狠操一区二区 | 国产黑丝在线播放 | 国产福利专区 | 91免费视频大全 | 欧美性猛交xx乱大交 | 日本最新中文字幕 | 爆操女秘书 | 中国一级特黄毛片大片 | 欧美亚洲不卡 | 伊人日本 | 99在线播放 | 男女激情网站 | 亚洲无限码 | 亚洲第一页中文字幕 | 亲切的金子餐桌片段的金子 | 精品国产亚洲一区二区麻豆 | 亚洲一区二区美女 | 欧美抠逼视频 | 澳门av网站 | 国产伦精品一区二区三区88av | 成人午夜免费电影 | 手机看片久久久 | 精品国产亚洲AV | 二区久久| 久久精品在这里 | 亚洲精品在线观看免费 | 黄色精品一区二区 | 免费欧美大片 | 免费视频爱爱太爽 | 一二三区中文字幕 | 美丽的姑娘观看在线播放 | 15p亚洲| 69综合| 国产精品12区 | 日本精品免费一区二区三区 | 欧美黑人添添高潮a片www | 久草视频免费播放 | 亚洲成人999 | 日韩av在线网站 | 国产性―交―乱―色―情人 | 日韩av免费在线 | 在线永久看片免费的视频 | 国产精品一区二区电影 | 亚洲欧洲国产综合 | 中国女人真人一级毛片 | 日本一区视频在线播放 | 色桃网| 好吊色一区二区三区 | 欧美午夜小视频 | 亚洲熟女乱综合一区二区三区 | 成人尤物 | 欧美人与性动交g欧美精器 国产在线视频91 | 国产精品视频一区二区三区不卡 | 亚洲天堂精品在线观看 | 91插插插插插 | 播放黄色一级片 | 日韩成人中文字幕 | videos麻豆 | 国产精品永久免费视频 | 国产一区二区三区四区 | 欧美脚交视频 | 国产精品人成在线观看免费 | 久久看片 | 一级黄色免费视频 | 69视频一区二区三区 | 秋霞成人午夜伦在线观看 | 综合网av| 蜜臀aⅴ国产精品久久久国产老师 | 久久精品国产亚洲av麻豆 | 激情五月色播五月 | 国产午夜福利一区二区 | 日本在线国产 | 69色 |