1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pixi.jsでApplicationのサイズをスマホの画面に合わせる

Posted at

今やパソコンでWebサイトを閲覧する人などこの世にいない。
いない、というのは嘘だが、サイトを作るときはこのくらいの気持ちでいたほうが良い気がする。
どんなサイズの端末でサイトを訪れられてもイイカンジのデザインで表示されていてほしいものだ。

特にそれがゲームであればなおさらである。
わざわざブラウザでゲームを作るなという正論は聞こえないふりをして、ゲーム画面をスマホのサイズに合わせる方法を紹介する。

script.js
//Aliases
let Application = PIXI.Application;
    
//アプリケーション宣言
const width = 500;
const height = 600;
const widRatio = 0.9;
const heiRatio = 0.95;
let app= new Application({
    width:width, 
    height:height,
    backgroundColor:0xAAAAAA,
});

//貼り付け
document.getElementById("game").appendChild(app.renderer.view);

function screenResize() {
    let wid = widRatio*window.innerWidth;//ゲームを表示できる最大横幅
    let hei = heiRatio*window.innerHeight;//ゲームを表示できる最大縦幅
    let x = width;
    let y = height;
    app.stage.scale.x = app.stage.scale.y = 1;//スクリーン幅が十分の時は画面倍率を1にする
    resizeRatio = Math.min(wid/width, hei/height);//横幅と縦幅の、ゲーム画面に対する比のうち小さい方に合わせる
    if(wid < width || hei < height) {//スクリーン幅が足りないとき
        //リサイズ倍率を調整
        x = width*resizeRatio; 
        y = height*resizeRatio; 
        app.stage.scale.x = resizeRatio;
        app.stage.scale.y = resizeRatio;
    }
    app.renderer.resize(x, y);//レンダラーをリサイズ
}
window.addEventListener("load", screenResize);//ロード時に画面サイズを変える
window.addEventListener('resize',screenResize,false);//ウィンドウの大きさが変わったらその都度画面サイズを変える

これでどんな端末でもイイカンジに画面表示ができる。やったね!!!

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?