iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0

》Resize
目前我們的遊戲寬高設為 640 x 320,但我們希望可以在任何視窗、裝置大小可以填滿整個畫面,讓遊戲體驗能夠更好,更加完善。

原本的狀況,如圖:
https://ithelp.ithome.com.tw/upload/images/20181024/20111617AUf1n6jpec.png

》HTML、CSS 內容

<head>
    .....
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

body {
    margin: 0;
    background-color: #000000;
}
canvas {
    position: absolute;
    top: 50%:
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
}

》Javascript 內容
在 onload 的時候,去執行 resize 並偵聽它。

window.onload = function() {
    function resize() {
        let canvas = document.querySelector('canvas')
        let ww = window.innerWidth
        let wh = window.innerHeight
        let wRatio =  ww / wh
        let gameRatio = config.width / config.height
        if (wRatio < gameRatio) {
            canvas.style.width = ww + 'px'
            canvas.style.height = ( ww / gameRatio ) + 'px'
        } else {
            canvas.style.width = ( wh * gameRatio ) + 'px'
            canvas.style.height = wh + 'px'
        }
    }
    resize()
    window.addEventListener('resize', resize, false)	// 偵聽事件 resize
}

》結論
今天我們偵聽 resize,重新計算遊戲畫面大小並調整,希望能讓使用者體驗更好。
https://ithelp.ithome.com.tw/upload/images/20181024/201116170In8gStUo0.png


今天就先到這裡,我們明天見。


上一篇
Day 8:群組
下一篇
Day 10:Camera
系列文
Phaser 幫我撐個 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言