LoginSignup
1
1

More than 5 years have passed since last update.

enchant.jsとtmlib.jsを使ったゲーム作成フレームワーク「enforce」環境設定処理

Last updated at Posted at 2015-01-17

環境設定処理

enforce」では、ゲームの設定に関する情報を「src/environ.coffee」と、「lib/config.ini」に集約させています。

environ.coffee

src/environ.coffee」では、ゲームの環境設定を行います。

# static values setting ***********************************************************************************
DEBUG           = true                      # デバッグモード
SCREEN_WIDTH    = 600                       # 画面の幅
SCREEN_HEIGHT   = 864                       # 画面の高さ
BGCOLOR         = "black"                   # 背景色
OBJECTNUM       = 256                       # キャラの最大数
FPS             = 60                        # FPS
GRAVITY_X       = 0.0                       # box2d用水平方向重力
GRAVITY_Y       = 9.8                       # box2d用垂直方向重力
GAMEPADMIX      = true                      # キーボードとゲームパッド1の情報を合成する
WEBGL           = false                     # WebGL使用設定

# preloading image list ***********************************************************************************
MEDIALIST       = { 
    bear    : 'media/picture/chara1.png'
}

各変数を説明していきます。

DEBUG
デバッグフラグ。
これが「true」の時は、画面に表示されているスプライトにサイズを示す赤い枠が付きます(enchant.jsの場合のみ)。
そして、デバッグ用チェックライト関数「JSLog()」が使えます。
SCREEN_WIDTH、SCREEN_HEIGHT
ゲームの画面サイズ。
オリジナルのenchant.jsでは、画面が左寄せになっているのですが、enforceで使っているものはセンタリングするように修正してあります(tmlib.jsは標準でセンタリングされる)。
BGCOLOR
背景色です。
HTMLのカラー指定と同じ方法で指定します。
OBJECTNUM
ゲームで使用するオブジェクト数を指定します。
enforceでは、ここで指定した数のオブジェクトをゲーム起動時に予め確保してしまいます(スプライトはオブジェクト生成時)。
FPS
ゲームのFrame Per Secondsを指定します。
enchant.jsではAndroidだと指定したFPSよりも速い速度で実行されます(原因不明)。
GRAVITY_X、GRAVITY_Y
box2dの物理スプライトで使用される重力パラメーターです。
GAMEPADMIX
trueにすると、キーボード操作の情報とゲームパッド1の情報を合成して、どちらで操作してもゲームパッド1の情報が更新されるようになります。
WEBGL
trueにすると、enchant.jsを使用するときに、gl.enchant.jsが読み込まれます。

最後の「MEDIALIST」はゲーム内で使う、画像・サウンド・3Dモデルをプリロードするリストを定義します。
ここに記述されていないメディアファイルは使うことが出来ません。
ここに記述されているメディアファイルはプリロードされます。
ゲームスクリプト内で使用するときは、連想配列のキーで指定します。

基本的にメディアファイルは「game01/media」の下の、画像は「picture」、サウンドは「sound」、3Dデータは「model」に格納して使います(これは強制ではないですが、サンドボックスの中にしか置けません)。

各変数は変更後に再コンパイルで適用されます。


config.ini

lib/config.ini」では、使用するライブラリの選択を行います。

[ENVIRON]
LIBRARY=enchant
TITLE=GAME TITLE

LIBRARY

使用するスプライトライブラリを指定します。

enchant
株式会社ユビキタスエンターテインメントが作成したゲーム用ライブラリ、enchant.jsを使用します。
tmlib
個人でゲームライブラリを作成しているphi(ファイ)さんがメンテナンスしている、tmlib.jsを使用します。
現在のenforceでは、tmlib.jsを使うと下記のようないくつかの制限事項があります。
・isWithIn(object, distance)が使えない
・デバッグモード時にスプライト枠が出ない
・WebGLが使用出来ない

TITLE

ブラウザに表示するタイトルを指定します。
<title></title>タグで指定したのと同じ状態になります。


enforceチュートリアル一覧

1
1
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
1