ここではJS版まさおコンストラクションで使用できる拡張JavaScriptの使用法と、原作との挙動の違いについてまとめます。
まさおコンストラクションに必要なJSファイルを読み込み、!ReadMe.txtに記載した方法で既存のアプレットを置換するか、新規にゲームを作成します。
その際、引数の最後にオプションオブジェクトを追加し、そのオブジェクトのuserJSCallbackメンバにuserJS関数を登録します。
<!-- 使用例1 原作のuserJSを使用する場合 -->
<script type="text/javascript" src="CanvasMasao.js"></script>
<script type="text/javascript">
new CanvasMasao.Game(
{
"map0-0" : "............................................................",
(パラメータ群を記述)
}, "hoge", { userJSCallback : userJS }
);
function userJS(Offscreen_g, mode, view_x, view_y, ap)
{
(挙動を記述)
}
</script>
<!-- 使用例2 無名関数を使用する場合 -->
<script type="text/javascript" src="CanvasMasao.js"></script>
<script type="text/javascript">
new CanvasMasao.Game(
{
"map0-0" : "............................................................",
(パラメータ群)
}, "hoge",
{
userJSCallback : function (Offscreen_g, mode, view_x, view_y, ap)
{
(挙動)
}
}
);
</script>
<!-- 使用例3 クロージャを使用する場合 -->
<script type="text/javascript" src="CanvasMasao.js"></script>
<script type="text/javascript">
new CanvasMasao.Game(
{
"map0-0" : "............................................................",
(パラメータ群)
}, "hoge",
{
userJSCallback : (function ()
{
// 変数や関数の定義はこの中で行う
var x, y;
// コールバック関数を返す(渡す)
return function (Offscreen_g, mode, view_x, view_y, ap)
{
(挙動)
}
})()
}
);
</script>
挙動の記述についてですが、原作と大きく異なるのは、Applet1 = document.getElementById("hoge");
と記述してもアプレットを取得できないことです。そこで、userJSCallbackメンバに登録した関数の第5引数に、アプレットにあたるオブジェクトを渡しています。原作のソースを引き継ぐ場合は注意してください。この第5引数から、各種メソッドを呼び出すことができます。
/* 使用例1 初回起動時に、アプレットオブジェクトをグローバルに格納して参照する(原作での主な使用法) */
(前略)
var init_f = false;
var Applet1 = null;
function userJS(Offscreen_g, mode, view_x, view_y, ap)
{
if(!init_f) Applet1 = ap;
……
}
function userGameJS(Offscreen_g, view_x, view_y)
{
Applet1.addScore(100);
}
上の使用例1は、原作で主に使用されていた、アプレットをグローバルに格納して参照する方式で、非同期でもメソッドを使用できました。しかし、グローバルから参照するゆえに、外部からのスクリプト実行で変数値を変更したり、アプレットのメソッドを呼び出したりできます。これではスコアランキングに支障が出るため、かわりにクロージャを使用することをおすすめします。
/* 使用例2 クロージャを使用し、スコアランキングに支障が出にくくなるように設計する(推奨)*/
new CanvasMasao.Game(
{
"map0-0" : "............................................................",
(パラメータ群)
}, "hoge",
{
userJSCallback : (function ()
{
// 変数や関数の定義はこの中で行う
var x, y;
// コールバック関数を返す(渡す)
return function (Offscreen_g, mode, view_x, view_y, ap)
{
ap.addScore(100);
……
}
})(),
highscoreCallback : function (score)
{
(ハイスコアイベント時の処理)
}
}
);
userJSCallbackに登録した関数は、5個の引数を伴って呼び出されます。5つの引数の性質は以下の通りです。
名前(通称) | 型 | 概要 |
---|---|---|
Offscreen_g | オブジェクト(Graphics) | java.awt.Graphicsを模倣したオブジェクトです。このオブジェクトのメソッドを呼び出してオフスクリーンに描画処理を施します。 |
mode | 数値 | 現在のゲームモードを表します。 |
view_x | 数値 | ゲーム全体の左上端を原点としたときの、画面左上端のX座標です。 |
view_y | 数値 | ゲーム全体の左上端を原点としたときの、画面左上端のY座標です。 |
ap | オブジェクト(MasaoJSS : Applet) | 原作のアプレットを模倣したオブジェクトです。まさおの内部の動作を、このオブジェクトのメソッドを使って制御します。 |
ここではJS版のMasaoJSSで使用できるメソッドをまとめます。
※引数の[ ]で囲まれた部分は省略できます。その場合は省略時の動作をします。
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
getMode | 数値 | 現在のゲームモードを返します。コールバック関数の第2引数にセットされた値と同じ値が返ります。 | |
getHighscore | 数値 | 現在のハイスコアを返します。 | |
getScore | 数値 | 現在のスコアを返します。 | |
addScore | score | 真偽値 | 引数scoreの値だけスコアを増加します。引数に負の値が代入されると失敗します。 |
setScore | score | 真偽値 | スコアをscoreに設定します。 |
getValue | name | 文字列 | パラメータnameの値を取得します。 |
getParamValue | name | 文字列 |
getValue(name) と同じです。 |
setValue | name, value | 真偽値 | パラメータnameの値をvalueに設定します(値によっては再起動しないと動作しないことがあります)。 |
setParamValue | name, value | 真偽値 |
setValue(name, value) と同じです。 |
getJSMes | 数値 | ||
setJSMes | n | 真偽値 | |
restart | 真偽値 | 現在のパラメータを保持した状態でゲームを再起動します。 | |
setTitleLock | 真偽値 | ユーザーによるゲーム開始をできないようにします。 | |
startGame | 真偽値 | タイトル画面にいる場合、ゲームを開始します。 | |
setModeWait | mode, t | 真偽値 | 指定モードmodeでの待ち時間をtフレームに設定します。 |
getCoinCount | [x1, y1, x2, y2] | 数値 | 左上端の座標(x1, y1)、右下端の座標(x2, y2)を指定して、その範囲にあるコインの枚数を取得します。引数を省略した場合はマップ全体にあるコインの枚数を取得します。 |
getTimeLimit | 数値 | 現在の制限時間(画面に表示している値)を取得します。 | |
setTimeLimit | time | 真偽値 | 現在の制限時間(画面に表示される値)をtimeに設定します。 |
setMyLeft | num | 真偽値 | 残り人数(ミスできる回数)をnumに設定します。 |
getMyLeft | 数値 | 残り人数を取得します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
getViewX | 数値 | 現在の画面左上端のX座標を、ブロック単位で取得します。 | |
getViewY | 数値 | 現在の画面左上端のY座標を、ブロック単位で取得します。 | |
getViewXReal | 数値 | 現在の画面左上端のX座標を、ピクセル単位で取得します。コールバック関数の第3引数にセットされた値と同じ値が返ります。 | |
getViewYReal | 数値 | 現在の画面左上端のY座標を、ピクセル単位で取得します。コールバック関数の第4引数にセットされた値と同じ値が返ります。 | |
setScrollLock | x | 真偽値 | 画面X座標がxに来たらスクロールをロックします。 |
setScrollArea | x1, y1, x2, y2 | 真偽値 | スクロール可能な範囲(x1, y1)~(x2, y2)をブロック単位で設定します。 |
setScrollAreaReal | x1, y1, x2, y2 | 真偽値 | スクロール可能な範囲(x1, y1)~(x2, y2)をピクセル単位で設定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
newImageOnLoad | filename | 画像 | filenameで指定した画像ファイルを読み込みます。そして、読み込んだ画像のオブジェクトを返します。このオブジェクトは、一部のメソッドの引数として使用することができます。 |
newChipImage | filename, width, height, nx, ny | 数値 | 画像ファイルfilenameを読み込んでチップ画像に分割します。widthは1チップの幅、heightは高さ、nxは横に並ぶチップ数、nyは縦に並ぶチップ数です。戻り値はチップ画像へのIDです。 |
makeReverseChipImage | chipID | 真偽値 | chipIDのチップの、左右反転、上下反転、180度回転した画像を生成します。 |
getChipImage | chipID [, index [, n]] | 画像 | chipIDの部分チップ画像を取得します。indexは分割画像の、最初を0番目としたインデックス、nは画像の反転を表し、0は元画像と同じ、1は左右反転、2は上下反転、3は180度回転した画像です。 |
disposeChipImage | chipID | 真偽値 | 生成したチップ画像を削除します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
setBackImage | filename | 真偽値 | 背景画像を変更します。 |
setSecondImage | filename | 真偽値 | セカンド画像を変更します。 |
setSystemImage | n, filename | 真偽値 | ゲーム中で使われている画像を設定します。 |
setSystemDrawMode | n | 真偽値 | MasaoJSS側が描画するオブジェクトを制限します。nに1を指定するとすべての物体を描画します。また、2を指定すると主人公を、3を指定すると主人公と敵を、4を指定するとすべての物体(得点の文字なども含めたすべて)を描画しなくなります。 |
drawSystemObject | n | 真偽値 | JavaScript側から、物体を描画させるよう指示します。nは描画するオブジェクトの種類で、1は主人公、2は敵、3は得点と一言メッセージ、4は背景画像/背景色、5は背景レイヤーのマップ、6は標準レイヤーのマップ、7は動く床などの仕掛けです。 |
setSystemPattern | destCode, newCode | 真偽値 | 指定したパターンコードdestCodeの画像に、他のパターンコードnewCodeの画像を上書きコピーします。この設定はページを再読み込みするまで有効なので注意してください。 |
setSystemPatternImage | destCode, n, image | 真偽値 | 指定したパターンコードdestCodeの画像に、画像オブジェクトimageの画像を上書きコピーします。nは反転情報で、0でそのまま、1で左右反転します。この設定はページを再読み込みするまで有効なので注意してください。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
getMyX | 数値 | 主人公のX座標(ブロック単位)を取得します。 | |
getMyY | 数値 | 主人公のY座標(ブロック単位)を取得します。 | |
setMyPosition | x, y | 真偽値 | 主人公の座標をブロック単位で設定します。 |
getMyXReal | 数値 | 主人公のX座標(ピクセル単位)を取得します。 | |
getMyYReal | 数値 | 主人公のY座標(ピクセル単位)を取得します。 | |
setMyXReal | x | 真偽値 | 主人公のX座標(ピクセル単位)を設定します。 |
setMyYReal | y | 真偽値 | 主人公のY座標(ピクセル単位)を設定します。 |
getMyVX | 数値 | 主人公のX方向の速度を取得します。 | |
getMyVY | 数値 | 主人公のY方向の速度を取得します。 | |
getMyDirection | 数値 | 主人公の向きを取得します。0は左向き、1は右向きです。 | |
setMyVX | vx | 真偽値 | 主人公のX方向の速度を設定します。 |
setMyVY | vy | 真偽値 | 主人公のY方向の速度を設定します。 |
setMySpeed | speed | 真偽値 | 主人公の4方向・8方向移動の速さを設定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
setMyMiss | n | 真偽値 | 主人公がミスをします。nには動きを設定します。 |
setMyPress | n | 真偽値 | 主人公が踏む動作をします。nには動きを設定します。 |
showMyHP | name | 真偽値 | 主人公のHPを表示します。nameにはHPの名前を設定します。 |
setMyMaxHP | hp | 真偽値 | ゲーム開始時の主人公のHPを設定します。 |
setMyHP | hp | 真偽値 | 現在の主人公のHPを設定します。0を指定するとHPは0になりますが、ミスにはなりません。 |
getMyHP | 数値 | 現在の主人公のHPを取得します。 | |
setMyHPDamage | damage | 真偽値 | 主人公にdamageダメージを与えます。ただし、ダメージ直後の点滅状態ではダメージを与えられません。HPが0以下になるとHPは0になりますが、ミスにはなりません。 |
setMyWait | time, code, direction | 真偽値 | 主人公をtimeフレームの間停止させます。codeには停止中のパターンコードを指定しますdirectionは、0で左向き、1で右向きにします。 |
setStageClear | 真偽値 | ステージクリアします。 | |
isRideGround | 数値 | 主人公が地面に乗っているか判定します。乗っているならば1を返します。 | |
addMyTokugi | n | 真偽値 | 主人公に特技nを付加します。 |
removeMyTokugi | n | 真偽値 | 主人公の特技nを無効にします。 |
setEnemyPress | n | 真偽値 | 主人公が敵を踏めるかを設定します。nに1を代入すると踏める設定、2を代入すると踏めない設定、3を代入すると当たり判定をなくす設定になります。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
equipTail | flag | 真偽値 | 主人公のしっぽ装備を切り替えます。flagに1を代入すると装備し、0を代入すると外します。 |
equipFire | [flag] | 真偽値 | 主人公のファイヤーボール装備を切り替えます。flagに1を代入すると装備し、0を代入すると外します。 |
setFireRange | range | 真偽値 | 水平に飛ぶタイプのファイヤーボールの射程を設定します。 |
equipBarrier | time | 真偽値 | timeフレームの間持続するバリアを装備します。 |
getBarrierTime | 数値 | バリアの残り時間を取得します。 | |
equipJet | value | 真偽値 | ジェット燃料量をvalueに設定します。 |
setJetFuel | value | 真偽値 |
equipJet(value) と同じです。 |
equipGrenade | num | 真偽値 | グレネード所持数をnumに設定します。 |
setGrenadeCount | num | 真偽値 |
equipGrenade(num) と同じです。 |
getGrenadeCount | 数値 | グレネードの所持数を取得します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
setEnemy | code, x, y | 真偽値 | 敵(の攻撃)を座標(x, y)(ブロック単位)に配置します。codeは敵(の攻撃)のコードを指定します。 |
getEnemyTotal | 数値 | マップに配置直後の敵の数を取得します。 | |
destroyEnemy | x, y, width, height | 数値 | 指定された矩形(ピクセル単位)の範囲内にいる敵を倒します。戻り値は、倒した敵の数です。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
getBossXReal | 数値 | ボスのX座標を取得します。 | |
getBossYReal | 数値 | ボスのY座標を取得します。 | |
getBossHP | 数値 | ボスのHPを取得します。 | |
getBossDirection | 数値 | ボスの向きを取得します。0は左向き、1は右向きです。 | |
isBossAttackMode | 数値 | ボスが攻撃中ならば1を返します。 | |
setBossXReal | x | 真偽値 | ボスのX座標を設定します。 |
setBossYReal | y | 真偽値 | ボスのY座標を設定します。 |
setBossObjectImage | image, dx, dy | 真偽値 | ボスの画像をimageオブジェクトに設定します。dx、dyはそれぞれX座標補正値、Y座標補正値です。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
getMyObjectCondition | 数値 | 主人公の状態を取得します。 | |
getMyObjectAC | 数値 | 主人公のアニメーションカウンタを取得します。 | |
getMyObjectPattern | 数値 | 主人公のパターンコードを取得します。 | |
getMyDirection4way | 数値 | 4方向移動の主人公の向きを取得します。 | |
setMyObjectPattern | code | 真偽値 | 主人公の画像をパターンコードで設定します。 |
setMyObjectImage | image, dx, dy | 真偽値 | 主人公の画像を画像オブジェクトで設定します。設定を解除する場合はimageにnullを代入してください。dx、dyはそれぞれX座標補正値、Y座標補正値です。 |
setEnemyObjectPattern | enemyID, code | 真偽値 | 指定IDの敵の画像をパターンコードで設定します。 |
getEnemyObjectCondition | enemyID | 数値 | 指定IDの敵の状態を取得します。 |
getEnemyObjectPattern | enemyID | 数値 | 指定IDの敵のパターンコードを取得します。 |
getEnemyObjectX | enemyID | 数値 | 指定IDの敵のX座標を取得します。 |
getEnemyObjectY | enemyID | 数値 | 指定IDの敵のY座標を取得します。 |
getEnemyObjectLength | 数値 | マップに配置直後の敵の数を取得します。 | |
getEnemyObjectDirection | enemyID | 数値 | 指定IDの敵の向きを取得します。 |
setEnemyObjectImage | enemyID, image, dx, dy | 真偽値 | 指定IDの敵の画像を画像オブジェクトで設定します。dx、dyはそれぞれX座標補正値、Y座標補正値です。 |
getEnemyAC | 数値 | 指定IDの敵のアニメーションカウンタを取得します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
attackFire | x, y, width, height | 数値 | 指定された矩形(ピクセル単位)にファイヤーボール、グレネード、プラズマ砲の当たり判定を作成します。ファイヤーボールが当たると1、グレネード、プラズマ砲が当たると10、これらが同時に当たると数値を合計し、その値を返します。 |
attackTail | x, y, width, height | 数値 | 指定された矩形(ピクセル単位)にしっぽ攻撃の当たり判定を作成します。命中すると1、さもなくば0を返します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
showMessage | time, name, line1, line2, line3 | 真偽値 | 一言メッセージをtimeフレームの間表示します。nameに名前、line1~line3にセリフ文字列を指定します。 |
showImage | time, x, y, filename | 真偽値 | 画像ファイルfilenameをtimeフレームの間表示します。 |
setPenColor | r, g, b [, a] | 真偽値 |
showRect 、showOval メソッドで表示する図形の色を設定します。r、g、bに光の3原色の赤・緑・青を、aに不透明度を指定します。それぞれ0~255の範囲で指定します。aを省略した場合は完全に不透明になります。 |
showRect | time, x, y, width, height | 真偽値 | 指定された矩形をtimeフレームの間表示します。 |
showOval | time, x, y, width, height | 真偽値 | 指定された矩形領域に収まる楕円をtimeフレームの間表示します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
showGauge | value, string | 真偽値 | 長さvalueのゲージを表示します。stringには、ゲージの上に表示する文字列を指定します。 |
hideGauge | 真偽値 | ゲージを非表示にします。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
setMapchip | x, y, code | 真偽値 | 指定座標(x, y)(ブロック単位)に標準レイヤーのパーツを配置します。codeは配置するパーツのコードです。 |
getMapchip | x, y | 数値 | 指定座標(x, y)(ブロック単位)に配置されている標準レイヤーのコードを取得します。 |
setMapchip2 | x, y, code | 真偽値 | 指定座標(x, y)(ブロック単位)に背景レイヤーのパーツを配置します。codeは配置するパーツの番号です。 |
getMapchip2 | x, y | 数値 | 指定座標(x, y)(ブロック単位)に配置されている背景レイヤーの番号を取得します。 |
setAthletic | x, y, n | 真偽値 | 指定された座標(ブロック単位)に仕掛けパーツを配置します。nの値は、firebar1_typeパラメータの設定値と同じものを指定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
pressLeft | 真偽値 | 左キーを押します。 | |
pressLeft2 | 真偽値 | 左キーを2連続で押します。(ダッシュの操作) | |
releaseLeft | 真偽値 | 左キーを離します。 | |
pressRight | 真偽値 | 右キーを押します。 | |
pressRight2 | 真偽値 | 右キーを2連続で押します。 | |
releaseRight | 真偽値 | 右キーを離します。 | |
pressUp | 真偽値 | 上キーを押します。 | |
releaseUp | 真偽値 | 上キーを離します。 | |
pressDown | 真偽値 | 下キーを押します。 | |
releaseDown | 真偽値 | 下キーを離します。 | |
pressTrigger1 | 真偽値 | ジャンプキーを押します。 | |
releaseTrigger1 | 真偽値 | ジャンプキーを離します。 | |
releaseAll | 真偽値 | すべてのキーを離します。 | |
getKeyCode | 数値 | 押下中のキーコードを返します。 | |
resetKeyCode | 真偽値 | キーコードをリセットして0にします。 | |
isPressZKey | 数値 | Zキーが押されているかを判定します。押されていれば1、さもなくば0を返します。 | |
isPressXKey | 数値 | Xキーが押されているかを判定します。 | |
isPressSpaceKey | 数値 | スペースキーが押されているかを判定します。 | |
isPressUpKey | 数値 | 上キーが押されているかを判定します。 | |
isPressDownKey | 数値 | 下キーが押されているかを判定します。 | |
isPressLeftKey | 数値 | 左キーが押されているかを判定します。 | |
isPressRightKey | 数値 | 右キーが押されているかを判定します。 | |
isPressCodeKey | keyCode | 数値 | 指定コードのキーが押されているかを判定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
newYuka | x, y, width, height, filename | 数値 | 指定した長方形の、画像ファイルfilenameを表示する床オブジェクトを作成します。戻り値は床オブジェクトへのIDです。 |
newYuka | x, y, width, height, "rect" | 数値 | 第5引数を"rect"にすると、画像ではなく矩形を表示します。 |
newYuka | x1, y1, x2, y2, linetype | 数値 | linetypeを"line"にすると、始点(x1, y1)~終点(x2, y2)を結ぶ線分の床を作成します。linetypeを"triangle"にすると、線分を斜辺とする直角三角形を描画します。linetypeを"mount"にすると、線分から下を塗りつぶします。 |
setYukaPosition | yukaID, x, y | 真偽値 | 指定されたIDの長方形の床の座標を設定します。 |
setYukaPosition | yukaID, x1, y1, x2, y2 | 真偽値 | 指定されたIDの線分の床の座標を設定します。 |
setYukaType | yukaID, n | 真偽値 | 指定IDの床の当たり判定を設定します。nに2を代入すると当たり判定を無効にします。 |
disposeYuka | yukaID | 真偽値 | 指定IDの床を削除します。 |
setYukaColor | yukaID, r, g, b, a | 真偽値 | 指定IDの床の色を設定します。画像を表示している場合は無効です。 |
isRideYuka | yukaID | 数値 | 指定IDの床に主人公が乗っているかを判定します。 |
setYukaPattern | yukaID, code, n | 真偽値 | 指定IDの長方形の床に、標準レイヤーのパターン画像を設定します。nは、0だとそのまま、1だと左右反転した画像を表示します。 |
setYukaImage | yukaID, image | 真偽値 | 指定IDの長方形の床に、画像オブジェクトの画像を設定します。引数imageにファイル名を指定した場合、画像ファイルを読み込んで設定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
soundOn | 真偽値 | 効果音を出します。 | |
soundOff | 真偽値 | 効果音を消します。 | |
onSound | 真偽値 |
soundOn() と同じです。 | |
offSound | 真偽値 |
soundOff() と同じです。 | |
playSound | n | 真偽値 | 効果音を再生します。nには効果音の番号1~27の値を指定します。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
setFontSize | size | 真偽値 | スコアなどの文字列のサイズを設定します |
newFont | fontname, n, size | フォント | 第1引数(Offscreen_g)で使用できるフォントオブジェクトを作成します。nはフォントの修飾で、0は通常、1は太字、2は斜体です。環境によっては使用できないフォントも多く存在するので注意してください。 |
drawPattern | x, y, code, n | 真偽値 | オフスクリーンの指定座標に標準レイヤーのパターン画像を描画します。nは反転情報で、0でそのまま、1で左右反転して描画します。 |
setOffscreenColor | r, g, b, a | 真偽値 | オフスクリーンに描画する図形の色を設定します。 |
fillPolygon | x1, y1, x2, y2, x3, y3 [, x4, y4] | 真偽値 | オフスクリーンに、指定された点を結ぶ、塗りつぶした多角形を描画します。第7、第8引数を省略すると三角形、指定すると四角形を描画します。 |
drawImageRotate | image, x, y, angle | 真偽値 | オフスクリーンの指定座標に、画像オブジェクトの画像をangle度回転させて描画します。 |
drawImageScale | image, x, y, rateX, rateY | 真偽値 | オフスクリーンの指定座標に、画像オブジェクトの画像を拡大・縮小させて描画します。rateX、rateYは、それぞれX方向、Y方向の拡大率で、単位はパーセントです。例えば50を指定すると半分の長さ、200を指定すると2倍の長さになります。 |
drawImageAlphaComposite | image, x, y, a | 真偽値 | オフスクリーンの指定座標に、画像オブジェクトの画像を半透明にして描画します。aは不透明度で、単位はパーセントです。0で完全透明、100で不透明になります。 |
一応対応予定ですが、需要がないようならばこのまま削除します。
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
playBGM | filename | 真偽値 |
|
playBGMLoop | filename | 真偽値 |
|
stopBGM | 真偽値 |
| |
setHTMLText | html | 真偽値 |
setParamValue(name, value)を使用してください。 |
loadTextFile | filename | 文字列 |
|
drawImage | filename, x, y | 真偽値 |
newImageOnLoad(filename) で画像オブジェクトを取得したのち、Offscreen_g.drawImage(image, x, y) メソッドで描画してください。 |
名前 | 引数 | 戻り値の型 | 説明 |
---|---|---|---|
drawLine | x1, y1, x2, y2 | 真偽値 | 点(x1, y1)と点(x2, y2)を結ぶ線分を描画します。 |
drawImage | image, x, y | 真偽値 | 指定座標に画像オブジェクトの画像を描画します。 |
drawImage | image, x, y, width, height | 真偽値 | 指定矩形に収まるようにスケーリングして画像オブジェクトの画像を描画します。 |
drawImage | image, sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2 | 真偽値 |
画像オブジェクトの画像の、指定された矩形(sx1, sy1 )-(sx2, sy2)部分を抜き出した画像を、指定矩形(dx1, dy1)-(dx2, dy2)に収まるように描画します。 (X, Y, 幅, 高さの指定ではなく、2点指定による矩形であることに注意してください。) |
drawRect | x, y, width, height | 真偽値 | 塗りつぶさない矩形を現在の色で描画します。 |
fillRect | x, y, width, height | 真偽値 | 塗りつぶした矩形を現在の色で描画します。 |
drawOval | x, y, width, height | 真偽値 | 指定した矩形に収まる、塗りつぶさない楕円を現在の色で描画します。 |
fillOval | x, y, width, height | 真偽値 | 指定した矩形に収まる、塗りつぶした楕円を現在の色で描画します。 |
drawArc | x, y, width, height, angle, theta | 真偽値 | 指定した矩形(x, y, width, height)に収まる、塗りつぶさない円弧を現在の色で描画します。円弧の開始角度angleからtheta回転した角度までが描画対象です。単位はラジアンです。 |
fillArc | x, y, width, height, angle, theta | 真偽値 | 指定した矩形(x, y, width, height)に収まる、塗りつぶした円弧を現在の色で描画します。円弧の開始角度angleからtheta回転した角度までが描画対象です。単位はラジアンです。 |
drawPolygon | xa, ya, num | 真偽値 | X座標(xa)とY座標(ya)の配列から、頂点(xa[0], ya[0])-(xa[1], ya[1])-…を結んで、塗りつぶさない多角形を現在の色で描画します。numは頂点の数です。 |
fillPolygon | xa, ya, num | 真偽値 | X座標(xa)とY座標(ya)の配列から、頂点(xa[0], ya[0])-(xa[1], ya[1])-…を結んで、塗りつぶす多角形を現在の色で描画します。numは頂点の数です。 |
drawString | string, x, y | 真偽値 | 指定座標に文字列を描画します。 |
setFont | font | 真偽値 |
描画文字列のフォントをフォントオブジェクトで設定します。フォントオブジェクトはap.newFont() メソッドで取得してください。 |
コールバック関数userJSCallbackの第1引数(g)に渡されるオブジェクトには、原作では使用できなかった別の機能があります。g._ctx
(アンダーバーctx)と記述すると、オフスクリーンに使用されているグラフィックスコンテキストを取得できます。これはHTML5 Canvasの機能で、グラフィックを直接制御することができます。
※以下に示すサンプルコードはコールバック関数内の一部で、第1仮引数の名前はg
とします。
// 使用例1 文字列を中央寄せにして描画する
var ctx = g._ctx; // グラフィックスコンテキストを取得する
ctx.textAlign = "center"; // 中央寄せに設定する
g.drawString("あいうえお", 256, 100); // 試しに描画
ctx.fillText("かきくけこさしすせそたちつてと", 256, 130); // 試しに描画
// 使用例2 複雑な図形を描画する
var ctx = g._ctx; // グラフィックスコンテキストを取得する
ctx.beginPath();
ctx.moveTo(100, 160);
ctx.lineTo(120, 160);
ctx.arc(160, 60, 20, Math.PI, 0, true);
ctx.lineTo(200, 160);
ctx.stroke();