JavaScript ノベル風(ノヴェルっぽい)2

〔基本操作〕 〔Tips〕 〔ソフトウエアーのトップに戻る〕



《コマンド説明》

コマンドこの色は、マウス・キーボード共通で使用できます。
コマンドこの色は、マウス操作専用です。
コマンドこの色は、キーボード操作専用です。
コマンドこの色は、試作やデバック専用で本番時は使用しません。

(内):シーン内で使用するコマンド (外):シーン外で使用するコマンド。
(即時実行):他のコマンド処理を待たずにすぐに実行されるコマンド。

START(外)(即時実行)
 シナリオの開始。
 このコマンドは記述しなくても構いません。
 パラメータ1:オープニング画像(省略可能)。
 例) setItem("0","START:./Start.jpg") ;

END(外)(即時実行)
 シナリオの終了。
 例) setItem("9999","END") ;

SCENE(内)(即時実行)
 1シーンのスタートです、背景画像の表示を行います。

 パラメータ1:読み込む背景画像ファイルのURL 。
 注)ファイルは”xxx.jpg/xxx.gif./xxx.png等”ですが”./ ”をつけましょう。
 例) setItem("50","SCENE:./kouen1.jpg") ;

CUT(内)(即時実行)
 1シーンの終了。
 必ずシーンはカットで終わりにします、これでキー(マウス)入力待ちが可能になります。
 ほかに"CUT"出来るコマンドは、"GOTO:xxx:CUT"と"IFGOTO:x:x:x:x:x:CUT"になります。
 例) setItem("100","CUT") ;

WAIT(内)
 出力(WAIT以降の表示や描画等の処理)を待たせるウエイト処理。

 パラメータ1:ウエイトする長さ(時間)をms単位で指定します。
 例) setItem("420","WAIT:1000") ;

DELAY(内) *3)
 処理を一時遅延させる処理。
 バブルソートを行わせ遅延させています、
 ブラウザのデバックコンソール(F12)を開くとソートに掛かった処理時間(ms)が表示されます。

 パラメータ1:ソートする配列データ数(多く確保するとそれだけ時間が掛かる事になります)。
 例) setItem("420","DELAY:1000") ;
遅延させる場合は、ソートする計算が各々のPC環境により処理時間に差が出ると言う事です。
  なのでぇ、あまり良い処理(方法)ではないですね、苦肉の策です。

ADDIMG(内)(外)
 背景画像に重ね合わせる画像(キャラクター)の表示。
 複数の画像を重ねるのは可能ですが、GIFアニメーションは"canvas"が非対応です

 パラメータ1:画像を配置するx座標(ドット座標)。
 パラメータ2:画像を配置するy座標(ドット座標)。
 パラメータ3:読み込む画像ファイルのURL 。
 例) setItem("153","ADDIMG:350:95:./tomo.gif") ;
次ページ(Tips)のこんな感じ。

MOVIMG(内)
 キャラ画像のアニメーションを行います。
 キャラを移動させるにはキャラを消して次のキャラを表示させると言う動作を繰り返す必要が有ります
 でぇ、キャラを消すにはそのシーンの背景画像が使用されます。

 パラメータ1 :アニメーションの速度をms単位で指定します。(画像間のウエイト時間)
 パラメータ2 :アニメーションのデータ群個数( n / n+1 / n+2 で1群まとまり)。
 パラメータn :移動キャラnの表示するx座標(ドット座標) 。
 パラメータn+1:移動キャラnの表示するy座標(ドット座標) 。
 パラメータn+2:移動キャラnのURL 。
 例) 速度は100ms、データは3個
       setItem("25","MOVIMG:100:3:224:176:./title4.jpg:176:182:./title3.jpg:128:152:./title2.jpg) ;
 注意として速度はローカルで動作してもアップロードすれば動作不安定になる可能性が有る為
 あまり早くしない事、ADSL環境ですが50-100ms程までは動作確認しています。


SAVEIMG(内)(DL機能のみシーン外)
 現在の背景やキャラ等のキャンバス画像を一時保存します。
 本機能は"MOVIMG"のキャラを消す背景画像として使用します。
 本コマンドを実行するとその時点での"canvas" 画像を保存し、"MOVIMG"時の背景画像の代わりに
 この保存した画像が使われます
 使用した後は、必ず"setItem("420","SAVEIMG:C") ;"で保存画像をクリアして置きましょう。

 パラメータ1:S=保存する C=保存内容を消す DL=ダウンロード
 パラメータ2:ダウンロードする際のファイル名のURL("DL"のみ)。
 例) setItem("420","SAVEIMG:S") ;
 注意としてこの機能はローカルでは動作しません、必ずサーバーにアップロードしないと動作しません
更にここも参照しましょう。

キャラ移動時の消す画像は、ファイルから全背景画像を読み出すこの現在の方法が
ローカルでも動作するのでシナリオ作成時の作業確認が容易に行えるので便利ですが、
キャラサイズの背景画のみをキャンバスから読み出して使用する事も可能です、
この機能はアップロードしないと動作しませんだから、作業確認時は確認が面倒ですね
動作は多分早くなると思われます、なのでこの方法を覚書として書いて置きます。
  // キャンバス全体を操作する例
  // 新たに空のImageDataオブジェクトを作成する
  var imageData = ctx.createImageData(canvas.width, canvas.height);

  if (scenario[1] == "GET") {
    imageData = ctx.getImageData(0,0,canvas.width, canvas.height) ; // キャンバス画像を読み出す
  } else {
    ctx.putImageData(imageData, 0, 0) ;               // キャンバス画像を書き戻す
  }

TXTOUT(内)
 文字の表示を行います。

 パラメータ1:フォント(文字太さとフォント:例 '18px seri' / "bold 20px Dialog")。
 パラメータ2:文字色(RGB値:'#RRGGBB'or 'green')(未指定は前回値)。
 パラメータ3:テキストを配置するx座標(ドット座標)(未指定は中央表示) 。
 パラメータ4:テキストを配置する(1行2行と上から行で指定)
 パラメータ5:表示する文字列。(半角の":"記号は使用不可です)
 例) 
   setItem("105","TXTOUT:bold 20px Dialog:#FF01C0:2:13:おっはぁよー") ; // x=2ドット目 y=13行目
   setItem("315","TXTOUT:18px serif:white::26:(さて、どうしよう?)") ; // 26行目をセンター表示

TXTBKC(内)
 文字の背景を指定色で塗りつぶします。
   "TXTOUT"と同時に使用します。

 パラメータ1:塗りつぶす色(RGB値:'#RRGGBB'or 'green')。
 パラメータ2:色の透過度(1.0=100%〜0.0=0%透明)(未指定は1行のみ実行)。
         パラメータ2を指定した場合は、止めるまで実行(複数行)します。
         止めるのは、"TXTBACK:::"と指定します。
 例1) 1行指定の場合、シナリオ番号315のみ背景が青色で実行される
setItem("312","TXTBKC:blue::") ;
setItem("315","TXTOUT:18px serif:white::26:(さて、どうしよう?)") ;

 例2) 複数行指定の場合、シナリオ番号105-109まで適用、背景は黒で透明度50%
setItem("103","TXTBKC:black:0.5:") ; // ここから文字背景半透明色の開始
setItem("105","TXTOUT:18px serif:white:2:1:今日は、ともちゃんとのデートの日だぁ") ;
setItem("107","TXTOUT:18px serif:white:2:2:桜の花を見ながらのぉ、ともちゃん特製の手作り弁当おー") ;
setItem("109","TXTOUT:18px serif:white:2:3:ふふふぅ") ;
setItem("110","TXTBKC:::") ; // 文字背景半透明色はここまで  注意として"TXTBKC"で挟む場合は、"TXTOUT"の色指定は省く事ができません。
次ページ(Tips)のこんな感じ。

TXTONE(内)
 文字を1文字ずつウェイトし表示を行います。

 パラメータ1:フォント(文字太さとフォント:例 '18px seri' / "bold 20px Dialog")。
 パラメータ2:文字色(RGB値:'#RRGGBB'or 'green')(未指定は前回値)。
 パラメータ3:テキストを配置するx座標(ドット座標) 。
 パラメータ4:テキストを配置する(1行2行と上から行で指定)
 パラメータ5:表示する文字列。
 パラメータ6:文字間のウエイトさせる長さ(時間)をms単位で指定します。
 例) 
setItem("864","TXTOUT:18px serif:white:2:2:タンスかぁ") ;
setItem("865","TXTONE:18px serif:white:93:2: .......:300") ;  注意として、フォントにもよりますが、半角英数字が混じるとうまく表示しない時があります。  それは半角のサイズは、全角の単純に半分にしている他ならない。この調整は"Nobel-ish.js"の

 var txtoneSIZE = 2.0 ; // "TXTONE"で使用する半角英数字の縮小サイズ(textSIZE/txtoneSIZE)
 で行っています。(「等幅フォント」なら旨くいくかも?)

V_TXTOUT(内) *4)
 縦文字の表示を行います。

 パラメータ1:フォント(文字太さとフォント:例 '18px seri' / "bold 20px Dialog")。
 パラメータ2:文字色(RGB値:'#RRGGBB'or 'green')(未指定は前回値)。
 パラメータ3:テキストを配置する行(桁)(1行2行と右から行で指定)
 パラメータ4:テキストを配置するy座標(ドット座標)。
 パラメータ5:表示する文字列。
 例) 
  setItem("40","V_TXTOUT:bold 20px serif:white:3:40:「縦書き」は、何かぁ良いね。") ;// x=3行目 y=40ドット目

V_TXTONE(内) *4)
 縦文字を1文字ずつウェイトし表示を行います。

 パラメータ1:フォント(文字太さとフォント:例 '18px seri' / "bold 20px Dialog")。
 パラメータ2:文字色(RGB値:'#RRGGBB'or 'green')(未指定は前回値)。
 パラメータ3:テキストを配置する行(桁)(1行2行と右から行で指定)
 パラメータ4:テキストを配置するy座標(ドット座標)。
 パラメータ5:表示する文字列。
 パラメータ6:文字間のウエイトさせる長さ(時間)をms単位で指定します。

縦文字の例図1
 例) 
      setItem("10","SCENE:./utanoishi.jpg") ;
      setItem("15","TXTBKC:black:0.6:") ;
      setItem("20","V_TXTOUT:bold 20px serif:red:1:20:ののか") ;
      setItem("30","V_TXTONE:bold 20px serif:white:2:40:全くよめん!。:200") ;
      setItem("40","V_TXTOUT:bold 20px serif:white:3:40:「縦書き」は、何かぁ良いね..... 。") ;
      setItem("50","TXTBKC:::") ;
      setItem("70","CUT") ;
こんな感じでぇ、"TXTBKC"も使えます。
()【】「」『』ー ― 、。=〜{}<>《》 記号のみ縦書き仕様に変形させています。
尚、"〜"は反転表示させたいのですがぁ...やり方不明ですぅ m(_ _)m
又、"・・・・"を表示させるのに、漢字の"・"はそのままですが、半角"."を使用すれば
左図の様に少し移動変形をさせていますのでぇ綺麗に表示されます。

V_ALPNUM(内) *4)
 縦テキスト半角英数字文字を寝かせた様に表示します。

 パラメータ1:フォント(文字太さとフォント:例 '18px seri' / "bold 20px Dialog")。
 パラメータ2:文字色(RGB値:'#RRGGBB'or 'green')(未指定は前回値)。
 パラメータ3:テキストを配置する行(桁)(1行2行と右から行で指定)
 パラメータ4:テキストを配置するy座標(ドット座標)。
 パラメータ5:表示する文字列。

縦文字の例図2
 例) 
    setItem("45","V_ALPNUM:bold 14px Dialog:white:3:40:
            ホームページ (http://zattouka.net/index.htm l)") ;
半角の":"記号は使用不可です、漢字の":"を使ってください。

F_RECT(内)
 四角形を描画し塗りつぶします。

 パラメータ1:描画する四角形のx座標(ドット座標)、左上の角x位置。
 パラメータ2:描画する四角形のy座標(ドット座標)、左上の角y位置。
 パラメータ3:描画する四角形の幅 。
 パラメータ4:描画する四角形の高さ。
 パラメータ5:描画する四角形の色(RGB値:'#RRGGBB'or'green')。
 パラメータ6:色の透過度(1.0=100% 〜 0.0=0%透明)。
 例) setItem("864","F_RECT:10:50:200:100:blue:0.5") ;

L_RECT(内)
 四角形を描画します(塗りつぶし無し枠線のみ)。

 パラメータ1:描画する四角形のx座標(ドット座標)、左上の角x位置。
 パラメータ2:描画する四角形のy座標(ドット座標)、左上の角y位置。
 パラメータ3:描画する四角形の幅 。
 パラメータ4:描画する四角形の高さ。
 パラメータ5:線の色(RGB値:'#RRGGBB'or'green')。
 パラメータ6:線の太さ。 *5)
 例) 
  setItem("864","L_RECT:10:50:200:100:blue:4") ;
F_RRECT(内) *4)
 角丸四角形を描画し塗りつぶします。

 パラメータ1:角丸(四隅)の描画する半径。
 パラメータ2:描画する角丸四角形のx座標(ドット座標)、左上の角x位置。
 パラメータ3:描画する角丸四角形のy座標(ドット座標)、左上の角y位置。
 パラメータ4:描画する角丸四角形の幅 。
 パラメータ5:描画する角丸四角形の高さ。
 パラメータ6:描画する角丸四角形の色(RGB値:'#RRGGBB'or'green')。
 パラメータ7:色の透過度(1.0=100% 〜 0.0=0%透明)。
 例) setItem("864","F_RRECT:20:10:50:200:100:blue:0.5") ;

L_RRECT(内) *4)
 角丸四角形を描画します(塗りつぶし無し枠線のみ)。

 パラメータ1:角丸(四隅)の描画する半径。
 パラメータ2:描画する角丸四角形のx座標(ドット座標)、左上の角x位置。
 パラメータ3:描画する角丸四角形のy座標(ドット座標)、左上の角y位置。
 パラメータ4:描画する角丸四角形の幅 。
 パラメータ5:描画する角丸四角形の高さ。
 パラメータ6:線の色(RGB値:'#RRGGBB'or'green')。
 パラメータ7:線の太さ。 *5)
 例) 
  setItem("864","L_RECT:25:10:50:200:100:blue:2") ;

角丸四角形の例図
こんな感じです。

BAKSCR(内)
 黒のスクリーンを描画する。

 パラメータ1:描画するスクリーンのx座標(ドット座標)、左上の角x位置。
 パラメータ2:描画するスクリーンのy座標(ドット座標)、左上の角y位置。
 パラメータ3:描画するスクリーンの幅 。
 パラメータ4:描画するスクリーンの高さ。
 パラメータ5:色の透過度(1.0=100% 〜 0.0=0%透明)。
 パラメータ6:描画する開始位置(U=上 D=下 L=左 R=右)。
        例えば"U"指定なら上側から下方向にスクリーンが下りて来る様に描画されます。
 例) setItem("53","BAKSCR:0:0:640:160:U:0.5") ;
 例えば640x160のスクリーンを描画すると、160/20px=8回(640x20の四角形を8回)に渡り
 描画します、各描画する四角形のウエイト時間は20ms毎となります。
 ですので20pxの幅と20msの時間で描画速度が決まります、この調整は"Nobel-ish.js"の
 var bakscrSIZE  = 20 ;    // "BAKSCR"で描画する幅の単位(20px)
 var bakscrWAIT = 20 ;    // "BAKSCR"で描画するウエイト時間(20ms毎)
 var bakscrColor = "black"  // "BAKSCR"で描画するスクリーンの色
 で行っています。

BAKSCRコマンドの例
こんな感じです、描画する開始位置は上からです。

INFO(内)(外)
 キャンバスの下辺りにインフォメーションメッセージを表示します。
 (上図の"マウスをクリックしてください"の表示がそうです。)

 パラメータ1:表示する文字列(改行する場合は"<br>"を入れます)。
 例) setItem("325","INFO:1=[君と桜をもう少し見ていたい]<br>2=[家に行く]") ;
INFOコマンドの例
 表示する文字列内にはHTMLのタグを記述する事ができます。
 文字色を変えたい場合は、"index.htm"の<STYLE>タグに記述している
 color:#FB8A04; // とオレンジ色で固定にしてあります。
 を変更しましょう。

INFONE(内)(即時実行)
 キャンバスの下辺りにメッセージを1文字ずつウエイトさせ表示します。

 パラメータ1:表示する文字列。
 パラメータ2:文字間のウエイトさせる長さ(時間)をms単位で指定します。
 例) setItem("325","INFONE:何かキーを押してください。:300") ;

 このコマンドは、シーン番号"325"より上側のシーンが終了していなくても直ぐ実行されます。

BRANCH(内)(即時実行)
 指定の数字キー値へ分岐します。
 このコマンドは"CUT"コマンドで終了させなければキー(マウス)入力ができません。

 パラメータ1:分岐するシナリオ番号の個数(n:1-9まで)。
 パラメータ2:分岐する先のシナリオ番号(複数指定可、9個まで)。
 例) 
   setItem("325","INFO:1=[君と桜をもう少し見ていたい]<br>2=[家に行く]") ;
setItem("330","BRANCH:2:400:500") ;
setItem("335","CUT") ;
   数字"1"のキーを押すとシナリオ番号"400"へ飛び、"2"のキーなら"500"へ飛びます。
マウス操作の時、"INFO:[君と桜をもう少し見ていたい]<br>[家に行く]"の部分にマウスが
  重なるとその場所が緑色の背景色で表示されてポイントした事が判断できる様になります。
  緑色を変える場合は、"Mouse.js"ファイル内に記述してある、
  var selMSGtag1 = "<span style=\"background-color: rgb(0, 153, 0);\">" ;
  を変えましょう。 *1)
BRANCHコマンドの例

FLGSET(内)(外)(即時実行)
 フラグに値をセットします。
 フラグは8個使用できます、設定は10進数でそのままの値を設定する方法と、
 2進数(32ビット)のビットで指定する方法の2パターンがあります。

 パラメータ1:セットするフラグの番号(0-7まで)。
 パラメータ2:B=ビットでセット R=ビットをリセット D=そのままの値を設定("0"でリセット)。
       +=パラ3の値だけ増やす −=パラ3の値だけ減らす。*2)
 パラメータ3:設定するフラグの値(又はビット位置)。
 例)
   setItem("718","FLGSET:0:D:20") ;  // フラグ番号"0"に数値の"20"を設定する場合
   setItem("718","FLGSET:1:B:0") ;  // フラグ番号"1"のビット"0"をセットする場合
   setItem("718","FLGSET:1:R:0") ;  // フラグ番号"1"のビット"0"をリセットする場合
   setItem("718","FLGSET:0:D:0") ;   // フラグ番号"0"をクリアする場合
   setItem("718","FLGSET:7:+:1") ;   // フラグ番号"7"の値に数値の"1"をたす場合 *2)
更にここも参照しましょう。

IFGOTO(内)(外)(即時実行)
 フラグの条件付きで指定のシナリオ番号へジャンプする処理。
 条件が一致しない場合はその下のシナリオ番号を実行します。

 パラメータ1:判断するフラグの番号(0-7まで)。
 パラメータ2:比較する値(又はビット位置)(この値が一致ならジャンプ)。
 パラメータ3:ジャンプする先のシナリオ番号。
 パラメータ4:B=ビット位置比較  それ以外はそのまま比較する。
 パラメータ5:ビット位置比較なら結果は"0"or"1"どっち。
 パラメータ6:CUT=ジャンプする前にシーンも終了させる場合(省略可)。
 例) 
   // フラグ番号"0"の値が"63"であるならシナリオ番号"900"へ飛ぶ
   setItem("602","IFGOTO:0:63:900") ;
   // フラグ番号"1"のビット"31"が"1"であるならシナリオ番号"722"へ飛ぶ
  setItem("702","IFGOTO:1:31:722:B:1") ;
   // フラグ番号"1"のビット"31"が"0"であるならシーンを終了させてからシナリオ番号"722"へ飛ぶ
  setItem("702","IFGOTO:1:31:722:B:0:CUT") ;

GOTO(内)(外)(即時実行)
 指定のシナリオ番号へ無条件でジャンプする処理。

 パラメータ1:ジャンプする先のシナリオ番号。
 パラメータ2:CUT=ジャンプする前にシーンも終了させる場合(省略可)。
 例) 
   setItem("488","GOTO:1000") ; // シナリオ番号"1000"へ飛ぶ
  setItem("488","GOTO:1000:CUT") ; // シーンを終了させてからシナリオ番号"1000"へ飛ぶ

GOSUB(内)(即時実行)) *1)
 同じ処理を繰り返す場合に使用する、サブルーチン処理。

 パラメータ1:サブルーチン先のシナリオ番号 。

SUBSCENE(内)(即時実行) *3)
 GOSUB先のサブルーチンの先頭で必ず記述します。
 サブルーチンは、"SUBSCENE"で始まり"RETURN"で終わる様に記述します。

RETURN(内)(外)(即時実行) *1)
 サブルーチン終了(戻りは"GOSUB"行の次行へ)。

 パラメータ1:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
        次のシーン番号が実行されます。(シーン外のみ) *2)
 例) 
          :    setItem("200","GOSUB:1000") ;    setItem("201","TXTOUT:18px serif:white:2:1:RETURNはこの行に戻るよ!") ;           :           :    setItem("1000","SUBSCENE") ;    setItem("1001","TXTOUT:18px serif:white:2:1:サブルーチンの始まりだぁ") ;    setItem("1002","TXTOUT:18px serif:white:2:1:同じ処理を実行するのに良いかもね") ;    setItem("1004","RETURN") ;
シーン外で使用する場合の戻り場所は、そのシーンの先頭です。 *2)
もう少し詳しい内容は、ここを参照しましょう。

FLGDSP(内)(即時実行)(DEBUG用)
 フラグの内容をキャンバスの下辺りに表示します。
 10進数と2進数で表示されます。

 パラメータ1:表示するフラグの番号(0-7まで)。
 例) setItem("488","FLGDSP:1") ;   // フラグ番号"1"の内容を表示させます

SOUND(内)(外)
 音(音楽/効果音)を鳴らします。

 パラメータ1:ボリュームを指定(0.0=最小〜1.0=最大)(省略可)。
 パラメータ2:音のデータファイルのURL(wav / mp3等)。
 例) setItem("488","SOUND:0.5:./donguri.mp3") ;
ボリュームを省略した場合は現在値を使用しますが、デフォルトが"1.0"最大値なので嫌な場合は、
  ”setItem("1110","SNDCTL:VOLUME:0.5")”と初期値を設定しましょう。

SNDSTOP(内)(外)
 音(音楽/効果音)を停止させます。
 例) setItem("488","SNDSTOP") ;

SNDWAIT(内)
 音が停止するまで待ちます。
 例) setItem("488","SNDWAIT") ;

SNDCTL(内)(外)(即時実行) *2)
 サウンドコントロールの制御を行います。

 パラメータ1:制御の種類を設定。
        PANEL = サウンドコントロールパネルの表示をON/OFFします。
        VOLUME = ボリュームの調整を行います。
        MUTED = 音消しをON/OFFします。
        PAUSE = 一時停止/再開を行います。
        STOP  = 音を停止させます。
 パラメータ2:VOLUME時、+=音のアップ −=音のダウン それ以外はそのままの値を設定。
        PANEL時、 All=パネルも音楽も両方消す(OFFする場合)。
 パラメータ2/3:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
         次のシーン番号が実行されます。
 例) setItem("10200","SNDCTL:VOLUME:+") ; 
    setItem("10200","SNDCTL:PAUSE:E") ; 
    setItem("10200","SNDCTL:VOLUME:-:E") ; 
もう少し詳しい内容は、ここを参照しましょう。

VIDEO(内)(外) *2)
 動画を再生します。

 パラメータ1 :動画のフレームレート(24/30等 フレーム/秒)。
 パラメータ2 :ボリュームを指定(0.0=最小〜1.0=最大)(省略可)。
 パラメータ3 :動画の配置でx座標(ドット座標)。
 パラメータ4 :動画の配置でy座標(ドット座標)。
 パラメータ5 :動画の横幅。
 パラメータ6 :動画の高さ。
 パラメータ7 :動画のデータファイルのURL(mp4等)(パラ7まで必須)。
 パラメータ8 :動画をループさせるなら"1"を設定 それ以外は"0"(省略可)。
 パラメータ9 :動画にかぶせるフレーム使用時のx座標(ドット座標)(省略可)。
 パラメータ10:動画にかぶせるフレーム使用時のy座標(ドット座標)(省略可)。
 パラメータ11:動画にかぶせるフレーム使用時のフレーム画像URL(省略可)。
 例) setItem("10415","VIDEO:30:0.5:50:50:400:335:./ペンギン.mp4:0:0:0:./ONテレビ.png") ; 
ボリュームを省略した場合は現在値を使用しますが、デフォルトが"1.0"最大値なので嫌な場合は、
  ”setItem("1110","VDCCTL:VOLUME:0.5")”と初期値を設定しましょう。

マウス操作専用コマンド *1)

VDOCTL(内)(外)(即時実行)(マウス専用) *2)
 ビデオコントロールの制御を行います。

 パラメータ1:制御の種類を設定。
        VOLUME = ボリュームの調整を行います。
        MUTED = 音消しをON/OFFします。
        PAUSE = 一時停止/再開を行います。
        STOP  = 音を停止させます。
 パラメータ2:VOLUME時、+=音のアップ −=音のダウン それ以外はそのままの値を設定。。
 パラメータ2/3:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
         次のシーン番号が実行されます。
 例) setItem("10200","VDCCTL:VOLUME:+") ; 
    setItem("10200","VDCCTL:STOP:E") ;
    setItem("10200","VDCCTL:VOLUME:-:E") ;
 "VIDEO/VDOCTL"のサンプルは、[sample6]を参考にしましょう。

MAPJUMP(内)(即時実行)
 キャンバス上の指定エリアをクリックするとジャンプする処理。
 表示している画像上の、指定エリアをクリックすると指定のシナリオ番号に進みます。
 指定エリア内にマウスが重なるとマウスカーソルが指マークに変わります。
 (エリア内でマウスが一時停止しないと変わりませんがぁ....)

 パラメータ1:指定エリアの左上x座標(ドット座標)。
 パラメータ2:指定エリアの左上y座標(ドット座標)。
 パラメータ3:指定エリアの横幅。
 パラメータ4:指定エリアの高さ。
 パラメータ5:エリア内をクリック時にジャンプする先のシナリオ番号。
 パラメータ6:"1"を設定すれば、試験的にエリア内を枠でカッコって表示します。(DEBUG用)
 例) setItem("630","MAPJUMP:170:410:120:50:700") ;   // テーブルの上(クリックで700行に進む)

 "MAPJUMP"のサンプルは、[マウス操作デモ(Mouse_demo)]を参考にしましょう。

MAPGRID(内)(DEBUG用)
 "MAPJUMP"用の指定エリアクリック範囲を大まかに知る為にグリッドを表示。
 グリッドは、白線で10ドット毎に線を引いていて、100ドット目が赤線です。
 例) setItem("488","MAPGRID") ;

BTNSET(内)(即時実行) *2)
 キャンバス上にボタンアイコンの登録を行います。
 例えば、ONボタンこの音が鳴らせる状態のONボタンと、 OFFボタンこの音が鳴らせない状態のOFFボタン、
 の登録がパラメータ9以降で行えますが、現状ではSOUNDコマンドの"MUTED"/"PAUSE"のみ対応です
 マウスが上に乗った状態も押された時の状態も全て同じサイズのアイコンを作成してください。

 パラメータ1 :ボタンが押された時にジャンプする先のシナリオ番号。
 パラメータ2 :ボタン配置のx座標(ドット座標)。(省略した場合はセンター表示)
 パラメータ3 :ボタン配置のy座標(ドット座標)。
 パラメータ4 :ボタンの横幅。
 パラメータ5 :ボタンの高さ。
 パラメータ6 :ONボタンの画像ファイル1のURL(通常状態)。
 パラメータ7 :ONボタンの画像ファイル2のURL(マウスが上に乗った状態)。
 パラメータ8 :ONボタンの画像ファイル3のURL(押された時の状態)(パラ8まで必須)。
 パラメータ9 :OFFボタンの画像ファイル1のURL(マウスが押された後の通常状態)(省略可)。
 パラメータ10:OFFボタンの画像ファイル2のURL(マウスが上に乗った状態)(省略可)。
 パラメータ11:OFFボタンを使う場合の機能(省略可)。
         1:sound.MUTED 2:sound.PAUSE。
 パラメータ12 =予約(省略可)。
 例)
      setItem("1202","BTNSET:2000:600:440:40:40:menu1.png:menu2.png:menu3.png") ;
      setItem("1204","BTNSET:3000:550:440:40:40:muted1.png:muted2.png:muted3.png:muted4.png:muted2.png:1") ;
 "BTNSET"のサンプルは、[sample5]を参考にしましょう。

MUSPDSP(内)(DEBUG用) *2)
 キャンバス上のマウスのx,y軸を表示します。
 例) setItem("488","MUSPDSP") ;

MENU(内) *2)
 "SCENE"コマンドと同じですが、設定メニュー画面等を開く場合に使用しましょう。
 "MENU/MENUEND"のサンプルは、[sample5]を参考にしましょう。

メニュー設定画面
 例)
      // 設定メニュー画面
      setItem("2000","MENU:./menu.gif") ;
      setItem("2002","BTNSET:10000::95:103:30:肩たたき1.png:肩たたき2.png:肩たたき3.png") ;
      setItem("2004","TXTOUT:18px serif:blue::8:サイト「童謡・唱歌の世界」から") ;
      setItem("2006","TXTOUT:18px serif:blue::9:https://s-pst.info/douyou-syouka/") ;
      setItem("2008","BTNSET:10100::180:129:30:stop1.png:stop2.png:stop3.png") ;
      setItem("2010","BTNSET:10200::215:189:30:load1.png:load2.png:load3.png") ;
      setItem("2012","MENUEND") ;

MENUEND(内) *2)
 "CUT"コマンドと同じですが、設定メニュー画面等を開く場合に使用しましょう。

シーン外専用コマンド *2)

TXTOFF(外)(即時実行) *2)
 テキスト文字表示のON/OFFを行う処理。
 BAKSCR/TXTOUT/TXTONEのコマンドが影響を受けます、他のコマンドは表示されます。
 例えば、キャンバスの画像をダウンロードする場合等に利用します。
 このコマンドを実行するとそのシーンの頭から実行し直します。

 パラメータ1:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
        次のシーン番号が実行されます。
 例) setItem("500","TXTOFF:E") ;
更にここも参照しましょう。

SAVEIMG:DL(外) *2)
 キャンバス画像のダウンロードを行う処理。
 現状は、"image/jpeg"で固定となっています。
 注意としてこの機能はローカルでは動作しません、必ずサーバーにアップロードしないと動作しません

 パラメータ2:ダウンロードするファイル名(URL)。
 例) setItem("500","SAVEIMG:DL:./temp.jpg") ;
更にここも参照しましょう。

SAVEDAT(外)(即時実行) *2)
 ゲームデータをcookieに保存する処理。
 保存期間は30日で設定しています。
 注意としてこの機能はローカルでは動作しません、必ずサーバーにアップロードしないと動作しません

 パラメータ1:cookieのキー値を指定。
 パラメータ2:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
        次のシーン番号が実行されます。
 例) setItem("500","SAVEDAT:nobel1") ;
更にここも参照しましょう。

LOADDAT(外)(即時実行) *2)
 ゲームデータをcookieから読み込んで復元する処理。
 保存時のシーンから再開します。
 注意としてこの機能はローカルでは動作しません、必ずサーバーにアップロードしないと動作しません

 パラメータ1:cookieの保存時のキー値を指定。
 パラメータ2:"E"指定で、キー入力又はクリックイベントを発生させる(省略可)。
        次のシーン番号が実行されます。
 例) setItem("500","LOADDAT:nobel1") ;
更にここも参照しましょう。

FKEYSET(外)(即時実行)(キーボード専用) *2)
 ファンクションキーの登録を行います。
 登録する事により、ファンクションキーが押せる様になります。
 シーンがスタートする前に登録を行います。
 必ず、シナリオ番号へジャンプした場合は"RETURN"コマンドで戻る様に記述してください。

 パラメータ1:ファンクションキーの番号を指定(F5なら5)。
 パラメータ2:ジャンプする先のシナリオ番号。
 パラメータ3:1=ファンクションキー無効指示(省略可)
        例えば、ブラウザーの"F1"キーはヘルプが割り付けられていますが、
        無効指示を行う事によりその効果を無効にできます。
 例) setItem("5","FKEYSET:3:10200:1") ;
          :
          :
      // ボリュームUP
      setItem("10200","SNDCTL:VOLUME:+") ;
      setItem("10210","RETURN") ;
もう少し詳しい内容は、ここを参照しましょう。





四角形の枠太さはパラメータで指定に変更(*5) 2020/10/07
角丸四角形と縦文字機能の追加(*4) 2020/09/25
GOSUB関連の改良とDELAYコマンドの追加(*3) 2020/09/15
拡張機能追加(*2) 2020/08/03
マウス操作に対応(*1) 2020/07/07


【きむ茶工房ガレージハウス】
Copyright (C) 2006-2020 Shigehiro Kimura All Rights Reserved.