入門3 該演員們出場了

舞臺已經準備好了,下面就該演員們登場了。我們給界面上添加一個提示圖片和一個按鈕。

    this.create = function() {
        this.add.sprite(0, 0, 'day');
        var menu = this.add.sprite(0,0, 'message');
        menu.x = (game.width - menu.width) / 2;
        menu.y = (game.height - menu.height) / 2;
        var button = this.add.button(0, 0, 'button', this.startGame);
        button.x = menu.x + (menu.width - button.width) / 2;
        button.y = menu.y + menu.height - button.height + 30;
    },
    this.startGame = function() {
    }
5.gif

哈哈,出來了。我們在添加按鈕的時候使用了 this.add.button,第三個參數指定了點擊按鈕的觸發的方法。接下來我們創建一個新的舞臺,在這個新舞臺上讓演員們表演。


game.states.start = function() {
    this.preload = function() {
        this.add.sprite(0, 0, 'day'); // 添加背景圖片
        bang = this.add.audio('bang'); // 添加撞擊音樂
        music = this.add.audio('music'); // 添加背景音樂
        this.input.maxPointers = 1; // 只能單指點擊屏幕或鼠標(非多人游戲)
        game.physics.startSystem(Phaser.Physics.ARCADE); // 啟動物理引擎
    },
    this.create = function() {
        music.play('', 0, 1, true); // 一直播放背景音樂
    },
    this.update = function() {
        
    }
}
game.state.add('start', game.states.start);

我們添加了一個新的舞臺,用來讓演員表演的舞臺,并添加了一些“后臺”默默工作的演員,同時開啟了物理引擎。
首先來說下坐標系。坐標用兩個數字表示(x,y),通常用x來表示行坐標,y表示列坐標。左上角是(0,0),右上角是(600,0),左下角是(0,600),右下角是(600,600),如果出了游戲界面,比如在左側,那么x是個負值,右側超過部分x大于600,上邊超出邊界則y是個負值,下邊超了邊界則y大于600。


坐標系.png

一個演員的默認錨點(坐標(x,y))默認在這個演員的左上角,我們給它改到它的中心位置。

        var moon = this.add.sprite(0, 0, "1");
        var x = game.width - moon.width / 2;
        var y = -moon.height / 2;
        moon.x = x;
        moon.y = y;

在create方法種添加上面的代碼,我們的一個月餅上臺了。為了讓這個舞臺顯示出來,需要在前一個舞臺中切換它。我們給menu舞臺中的startGame添加如下代碼,這樣就可以在點擊開始游戲的按鈕的時候切換到這個新舞臺。

    this.startGame = function() {
        game.state.start('start');
    }
第一個演員.png

啊,可憐的演員,沒有找準自己的位置,我們幫幫它,先來分析下。


分析坐標.png

我們要讓演員到圖上所示的位置,我們給演員設置錨點(即它的中心點)到它的中心,那么它的坐標應該是(600-演員寬度的一半,演員高度的一半)。

        var moon = this.add.sprite(0, 0, "1");
        moon.anchor.set(0.5); // 設置演員錨點為中心點
        var x = game.width - moon.width / 2;
        var y = moon.height / 2;
        moon.x = x;
        moon.y = y;

再次運行看看效果。

演員找準位置.png

這個游戲里我們要讓演員從舞臺外面滑進來,所以演員一開始的位置應該在舞臺邊緣,緊貼著舞臺,那么它的坐標應該是多少呢?思考下算算看。本文的最終代碼已經把演員放到舞臺邊緣還未上場的地方了。
本文最終代碼地址:
碼云
github

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,886評論 18 139
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,510評論 0 17
  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標簽 ②:HTML5 ...
    GreenHand1閱讀 4,718評論 2 32
  • Matplotlib 入門教程 來源:Introduction to Matplotlib and basic l...
    布客飛龍閱讀 31,879評論 5 162
  • 我認為行業研究部分的寫作主要流程是這樣的,首先明確行業研究的目的,緊扣客戶最關心的內容以此作為核心;然后搜集行業資...
    趙崢辰閱讀 1,212評論 0 6