画面を表示しよう!
サンプル
コードの解説
まず最初に、実行する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を通して呼び出せるようになります。