Categories
JavaScript tmlib.js Tutorial

01:「最初の一歩、画面を表示しよう」 – JavaScriptライブラリ「tmlib.js」でシンプルなタッチゲームを超簡単に作るチュートリアル

画面を表示しよう!

サンプル

コードの解説

まず最初に、実行するmain.jsと、HTMLファイルであるindex.htmlファイルを作ってから始まります。中に記述しているコードは次のようになってます。

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, user-scalable=no" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

        <title>タッチゲーム制作チュートリアル</title>

        <script src="http://rawgithub.com/phi1618/tmlib.js/6ee7b4d17ea0c0edac203920fb80bb755fa1cf18/build/tmlib.js"></script>
        <script src="js/main.js"></script>
    </head>
    <body>
        <canvas id="world"></canvas>
    </body>
</html>

HTMLでtmlib.jsのロードを行なっています。tmlib.jsを利用するにはcanvasを作っておかないといけません。準備はこれだけです。次は実際にtmlib.jsを動かすコードとなります。

/**
 * ゲーム起動処理
 */
var game = game || {};

(function(ns) {

    tm.main(function() {
        // スクリーンサイズ
        ns.SCREEN_WIDTH  = 640;
        ns.SCREEN_HEIGHT = 960;

        // アプリケーション作成
        ns.app = tm.app.CanvasApp("#world");
        ns.app.resize(ns.SCREEN_WIDTH, ns.SCREEN_HEIGHT); // 画面サイズに合わせる
        ns.app.fitWindow(); // リサイズ対応
        ns.app.background = "rgb(0, 0, 0)"; // 背景色をセット

        // tmlibの実行
        ns.app.run();
    });

})(game);

tm.main関数からアプリケーションの処理を開始していきます。スクリーンサイズなどのアプリケーションの設定を行ってapp.run()を行うことで、アプリケーション実行開始です。画面を表示する儀式と思ってもらえたらと思います。

もうちょっと詳しく解説

var game = game || {};

(function(ns) {

    tm.main(function() {
        // スクリーンサイズ
        ns.SCREEN_WIDTH  = 640;
        // 以下続く...
    });

})(game);

main.jsの記述ですが、人によると見慣れない書き方がいくつかあるかと思います。

var game = game || {};

これはネームスペースと言われるもので、このgameという変数の中に全てデータをいれこんでいきます。なのでグローバル領域を汚しません。

(function(ns) {})(game);

これも同じくネームスペースの処理ですね。関数の中に変数を閉じ込めています。よく分からない!という方はオマジナイだと思ってもらって差し支えはありません。

定数を別ファイルに分けよう

サンプル

コードの解説

ゲームを起動するために使った値は、今後ゲームを新しく作る際に作りやすいよう別ファイルで管理しましょう。新しくparam.jsというファイルを作るので、HTMLのコードを書き換えます。

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, user-scalable=no" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

        <title>タッチゲーム制作チュートリアル</title>

        <!-- tmlib.js -->
        <script src="http://rawgithub.com/phi1618/tmlib.js/6ee7b4d17ea0c0edac203920fb80bb755fa1cf18/build/tmlib.js"></script>

        <!-- game -->
        <script src="js/param.js"></script>
        <script src="js/main.js"></script>
    </head>
    <body>
        <canvas id="world"></canvas>
    </body>
</html>

新しくファイルを追加したので、読み込むJavaScriptのファイルが増えましたね。param.jsというファイルにmain.jsファイルの記述を移します。

/**
 * ゲーム用ネームスペース作成、定数作成
 */
var game = game || {};

(function(ns) {
    // スクリーンサイズ
    ns.SCREEN_WIDTH  = 640;
    ns.SCREEN_HEIGHT = 960;
})(game);
/**
 * ゲーム起動処理
 */
// var game = game || {};

(function(ns) {

    tm.main(function() {
        // // スクリーンサイズ
        // ns.SCREEN_WIDTH  = 640;
        // ns.SCREEN_HEIGHT = 960;

        // アプリケーション作成
        ns.app = tm.app.CanvasApp("#world");
        ns.app.resize(ns.SCREEN_WIDTH, ns.SCREEN_HEIGHT); // 画面サイズに合わせる
        ns.app.fitWindow(); // リサイズ対応
        ns.app.background = "rgb(0, 0, 0)"; // 背景色をセット

        // tmlibの実行
        ns.app.run();
    });

})(game);

main.jsファイルで記述していた変数を別ファイルに移しました。ゲームを作る上で必ず必要になるようなデータはparam.jsに記述するようにすれば、管理がしやすくなるので今のうちにやっておきます。
 
nsという変数に直接登録した変数は、nsを呼び出すことで変数を使うことができます。次のようにです。

        ns.app.resize(ns.SCREEN_WIDTH, ns.SCREEN_HEIGHT); // 画面サイズに合わせる

param.jsファイルでスクリーンサイズに関する変数を登録しているので、main.jsファイルからでもnsを通して呼び出せるようになります。

Leave a Reply

Your email address will not be published. Required fields are marked *