亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用CocosCreator實現射擊小游戲

發布時間:2021-04-14 11:53:46 來源:億速云 閱讀:319 作者:小新 欄目:開發技術

這篇文章主要介紹怎么使用CocosCreator實現射擊小游戲,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

分析下制作步驟:

1. 準備好資源,搭建場景

資源的話可以自己到網上找,也可以直接用我的也行;創建好相應文件夾,把資源放到res文件夾下;

搭建場景:
第一步:創建一個單色精靈(Script) bg 背景, 設置好顏色,加一個Widget組件,使其充滿屏幕;

怎么使用CocosCreator實現射擊小游戲

第二步: 在bg節點下創建topbutton空節點作為頂與底部,然后在兩個空節點加入帶刺的節點(直接將圖片拖到top層級管理器就可以),現在我們需要給top與button節點添加一個Layout組件,屬性設置如圖,這樣可以看到屏幕上下都有刺了。

怎么使用CocosCreator實現射擊小游戲

第三步: 將玩家小人、子彈、敵機同樣的方法加入到場景中,再創建一個Label節點用來顯示分數,調節一下位置;

怎么使用CocosCreator實現射擊小游戲

2. 代碼控制游戲

第一步: 創建一個game腳本,掛載到dg節點上;

第二步: 編輯代碼,在 properties添加屬性,用來關聯玩家、子彈、敵人節點,再編輯器關聯;

怎么使用CocosCreator實現射擊小游戲

第三步: 代碼邏輯控制,包括初始化玩家、子彈、敵人;注冊監聽事件;寫動作函數;計分判斷等;

全部代碼:

cc.Class({
    extends: cc.Component,

    properties: {
        playerNode: cc.Node,
        enemyNode: cc.Node,
        fireNode: cc.Node,
        scoreNode: cc.Label,
    },
    
     onLoad () {
        this.playLoad();
        this.fireLoad();
        this.enemyLoad();
         this.node.on("touchstart",this.fire,this);
         
     },

     update (dt) {
          if(Math.abs(this.fireNode.y-this.enemyNode.y)<(this.fireNode.height/3+this.enemyNode.height/3)
            &&Math.abs(this.fireNode.x-this.enemyNode.x)<(this.fireNode.width/3+this.enemyNode.width/3)){
              console.log("擊敗敵機");
              this.scoreNode.string= ++this.score;//擊中得分
            this.fireNode.stopAction(this.fireAction);
            this.enemyNode.stopAction(this.enemyAction);
            this.enemyNode.active=false;
            this.fireNode.active=false;
            this.fireLoad();//初始化子彈
            this.enemyLoad();// 初始化敵機
          }

     },

     // 關閉事件監聽
     onDestroy(){
        this.node.off("touchstart",this.fire,this);
     },
    // 初始玩家
    playLoad(){
        this.score=0;
        this.playerNode.y=-cc.winSize.height/4;
        
    },
    //初始化子彈
    fireLoad(){
        this.fireNode.active=true;
        this.isFire=false;
        this.fireNode.x=this.playerNode.x;
        this.fireNode.y=this.playerNode.y+this.playerNode.height;
    },
    // 初始化敵機
    enemyLoad(){
        this.enemyNode.active=true;
        this.enemyNode.x=Math.random()* cc.winSize.width;
        this.enemyNode.y=cc.winSize.height/3;
        let x=cc.winSize.width/2-this.enemyNode.width/2;
        let y=Math.random()* cc.winSize.height/4;
        let seq=cc.repeatForever(cc.sequence(cc.moveTo(1.5,cc.v2(-x,y)),cc.moveTo(1.5,cc.v2(x,y))));
        
        this.enemyAction=this.enemyNode.runAction(seq);
    },
    // 死亡 重新加載游戲
    dear(){
        console.log("死亡");
        cc.director.loadScene("game_scenes");
    },


    // 發射子彈
     fire(){
         if(this.isFire) return;
         this.isFire=true;
        console.log("開始發射");
         var fireaction=cc.sequence(
             cc.moveTo(1,cc.v2(this.playerNode.x,cc.winSize.height/2)),
             cc.callFunc(()=>{
                this.dear();
            }));
        this.fireAction=this.fireNode.runAction(fireaction);
        console.log("結束發射");
     }

});

最終效果

怎么使用CocosCreator實現射擊小游戲

以上是“怎么使用CocosCreator實現射擊小游戲”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

稷山县| 开封县| 梅河口市| 滨海县| 印江| 大宁县| 临海市| 蓬莱市| 宾川县| 咸阳市| 汽车| 八宿县| 文山县| 金昌市| 将乐县| 富阳市| 托克托县| 乌什县| 昭通市| 渝中区| 建始县| 杭锦旗| 礼泉县| 揭西县| 阳原县| 嘉禾县| 土默特右旗| 凭祥市| 徐水县| 吉安县| 都江堰市| 灵寿县| 祁门县| 福安市| 洪江市| 武陟县| 陆川县| 永泰县| 鄂尔多斯市| 依兰县| 桑日县|