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

〔基本操作〕 〔コマンド〕 〔ソフトウエアーのトップに戻る〕


《Tips》

【フラグ配列変数使用メモについて】

 フラグをどの様に使用したか後で解かる様にメモを取って置きましょう。
 "Scenario.js"  のコマンド説明の下に
 ========================== フラグ配列使用メモ(gotoFLAG) ========================
 * [0]:0=テーブル/1=壁の写真/2=メガネ/3=携帯ストラップ/4=日記/5=タンス/(DEC:63) *
 * [1]: *
 * *
 *******************************************************************************/
 とあるので、この部分にメモって置きましょう。


  【"invisible.gif" 透明のスクリーン画像の使い所】

サンプル1用
[サンプル1]
      setItem("100","SCENE:./kouen1.jpg") ;
setItem("103","TXTBKC:black:0.5:") ; // ここから文字背景半透明色の開始
setItem("105","TXTOUT:bold 20px Dialog:#FF01C0::13:「おっはぁよー」") ;
setItem("115","WAIT:1000") ;
setItem("120","MOVIMG:50:5:550:95:./tomo.gif:500:95:./tomo.gif:450:95:./tomo.gif:400:95:./tomo.gif:350:95:./tomo.gif") ;
setItem("135","TXTOUT:18px serif:white:2:1:あ、とっ、ともおぢやん、おつう・はっよう...") ;
setItem("136","TXTOUT:18px serif:white:2:2:(ふぅ、あせったなぁ)") ;
setItem("137","TXTOUT:18px Dialog:white:2:4:「あれ?、ちょっとぉ、きんちょうしてるのかなー?」") ;
setItem("138","WAIT:6000") ;
setItem("140","TXTONE:bold 24px SimSun:white:2:5:ぞ、ぞんなごどわないよぉ:300") ;
setItem("143","INFO:何かキーを押してください") ;
setItem("145","CUT") ;
setItem("150","SCENE:./Invisible.gif") ;
setItem("153","ADDIMG:350:95:./tomo_egao.gif") ;
setItem("155","TXTOUT:18px Dialog:white:2:9:「はい、し〜んこきゅう」") ;
setItem("160","TXTOUT:18px serif:white:2:11:(わぁ、ともちゃんの笑顔かわいいなぁ〜)") ;
setItem("165","TXTOUT:18px serif:white:2:12:(って、あれ、なぜにぃ、パジャマ姿??)") ;
setItem("170","TXTOUT:18px serif:white:2:13:(な〜んだかぁ、へんだなぁ?)") ;
setItem("175","TXTOUT:18px Dialog:white:2:15:「さあ、お花見に行こっか」") ;
setItem("195","CUT") ;
 背景画(kouen1.jpg)を"SCENE:150番"に用いると上のシーン画面が消されてしまいますが、
 "Invisible.gif"を使えばシーン画面を消さないで更にそのシーンに上書きして次のシーンを描く事が
 できます。

 Invisible.gif 画像の作り方

 ”GIMP2.8”での方法を書いて置きますが、大体どのアプリも 同じような方法です。
 @ "GIMP"のメニューバーから [ファイル(F)] → [新しい画像(N)...] を順番にクリックします。
 A 「新しい画像を作成」ウインドウが表示されたら、”詳細設定(A)”をクリックします。
 B ”幅(W)”と”高さ(E)”のボックスに自分の作りたい画像サイズを入力します。
 C ”塗りつぶし色(F)”のボックスで”透明”を選びます。
 D [OK(0)]ボタンをクリックし完成です。
 E 作成した画像を保存します、[ファイル(F)]→[名前を付けてエクスポート]を順番にクリックします。
 F 「画像をエクスポート」ウインドウが表示されます。
   ここで"GIF画像"を選択して保存しましょう。(操作方法は割愛します)

 
SAVEIMGコマンドの使い所】

サンプル2用
[サンプル2]
      // 背景画像で消した"MOVIMG"作品
setItem("1150","SCENE:./hachimanana3.jpg") ;
setItem("1151","ADDIMG:390:50:./mononoke2.gif") ;
setItem("1153","ADDIMG:0:120:./miko.gif") ;
setItem("1154","TXTOUT:18px serif:white:2:1:巫女 :「オン」") ;
setItem("1155","TXTOUT:18px serif::2:2:巫女 :「アビラウンケンソワカ」") ;
setItem("1156","TXTOUT:18px serif::2:3:巫女 :「マナ、開放」") ;
setItem("1157","TXTOUT:18px serif::2:5:巫女 :「この呪符を、受けてみなさい」") ;
setItem("1158","TXTOUT:18px serif::2:6:巫女 :「あくりょう〜たいさん、とりゃー」") ;
setItem("1159","CUT") ;
setItem("1165","SCENE:./hachimanana3.jpg") ;
setItem("1166","MOVIMG:100:6:390:50:./mononoke2.gif:390:50:./mononoke4.gif:330:50:./mononoke4.gif:390:50:./mononoke4.gif:330:50:./mononoke4.gif:390:50:./mononoke4.gif") ;
setItem("1167","TXTONE:18px serif::2:1:{ごっぐうわーーー、やられたぁ、ボス〜ぅ}:200") ;
setItem("1168","INFO:何かキーを押してください") ;
setItem("1169","CUT") ;
// "SAVEIMG"を使って消した"MOVIMG"作品
setItem("3150","SCENE:./hachimanana3.jpg") ;
setItem("3151","ADDIMG:0:120:./miko.gif") ;
setItem("3152","SAVEIMG:S") ; // ここでキャンバスを一時保存
setItem("3153","ADDIMG:390:50:./mononoke2.gif") ;
setItem("3154","TXTOUT:18px serif:white:2:1:巫女 :「オン」") ;
setItem("3155","TXTOUT:18px serif::2:2:巫女 :「アビラウンケンソワカ」") ;
setItem("3156","TXTOUT:18px serif::2:3:巫女 :「マナ、開放」") ;
setItem("3157","TXTOUT:18px serif::2:5:巫女 :「この呪符を、受けてみなさい」") ;
setItem("3158","TXTOUT:18px serif::2:6:巫女 :「あくりょう〜たいさん、とりゃー」") ;
setItem("3159","CUT") ;
setItem("3165","SCENE:./hachimanana3.jpg") ;
setItem("3166","MOVIMG:100:6:390:50:./mononoke2.gif:390:50:./mononoke4.gif:330:50:./mononoke4.gif:390:50:./mononoke4.gif:330:50:./mononoke4.gif:390:50:./mononoke4.gif") ;
setItem("3167","TXTONE:18px serif::2:1:{ごっぐうわーーー、やられたぁ、ボス〜ぅ}:200") ;
setItem("3168","SAVEIMG:C") ; // 一時保存をクリアする
setItem("3169","INFO:何かキーを押してください") ;
setItem("3170","CUT") ;
 上記側は"MOVIMG"時に"mononoke2.gif"のみアクションをしていましたが、
 下記側はアクション時に"巫女"さんが表示されたままですね。
 (注意としてこの機能はローカルでは動作しません、アップロードしないと動作しません。)


【ファンクションキーの登録方法】(キーボード専用) *2)

 キーボードで操作する場合にファンクションキーの登録ができます、登録したらファンクションキーが
 操作できるようになります。
 其々のファンクションキーに機能を持たせる事ができ、その機能の説明をキャンバス下に表示できます。
 その表示説明は、"Keyboard.js"に記述してある
  dspOP2MSG = "[F2:Text ON/OFF] [F8:Save] [F9:Load] [F10:Download]" ;
 の変数を書き換えましょう。(下図の様になります)

 ファンクションキーの登録の図

 ファンクションキーの機能を使わない場合は、dspOP2MSG = "";としましょう。
 ブラウザーのファンクションキー機能で使われていないのは"F2/F8/F9"が空です。
 使われている場合は、"FKEYSET"のパラメータ3に"1"を付ければ、その機能を無効にできます。

 SAVEDAT/LOADDAT/TXTOFF/SAVEIMG:DLの使い方

      setItem("0","START:./Start.jpg") ;          // シナリオの開始

      setItem("3","FKEYSET:8:10000") ;            // F8キーの登録 :Save
      setItem("4","FKEYSET:9:10100") ;            // F9キーの登録 :Load
      setItem("5","FKEYSET:10:10300:1") ;         // F10キーの登録:Download
      setItem("6","FKEYSET:2:10200") ;            // F2キーの登録 :Text ON/OFF

      setItem("10","SCENE:./white.jpg") ;         // シーン1スタート(タイトルの表示)
    :
      setItem("30","CUT") ;                       // シーン1ストップ
    :
    :
      setItem("9999","END") ;                     // シナリオの終了

      // クッキーへゲームデータの保存
      setItem("10000","SAVEDAT:TestSK:E") ;
      setItem("10010","RETURN") ;
      // クッキーからゲームデータを読み出す
      setItem("10100","LOADDAT:TestSK:E") ;
      setItem("10110","RETURN") ;
      // テキスト表示のON/OFF
      setItem("10200","TXTOFF:E") ;
      setItem("10210","RETURN") ;
      // キャンバス画像のダウンロードを行う
      setItem("10300","SAVEIMG:DL:temp.jpg") ;
      setItem("10305","INFO:ダウンロードします。<br>完了後、何かキーを押してください。") ;
      setItem("10310","RETURN") ;
 "FKEYSET"は、シーンの始まる前に記述します。
 各ファンクションキー機能の飛び先からは"RETURN"で戻ります。
 尚、"SAVEDAT"/"LOADDAT"/"SAVEIMG:DL"機能はアップロードしないと動作しません。

[サンプル3]

 SNDCTLの使い方

   dspOP2MSG = "[F1:音のパネルをON/OFF] [F2:ミュート] [F3:音+] [F4:音-]" ;

      setItem("0","START:./Start.jpg") ;          // シナリオの開始

      setItem("3","FKEYSET:1:10000:1") ;          // F1キーの登録:PANEL
      setItem("4","FKEYSET:2:10100:1") ;          // F2キーの登録:MUTED
      setItem("5","FKEYSET:3:10200:1") ;          // F3キーの登録:VOLUME+
      setItem("6","FKEYSET:4:10300:1") ;          // F4キーの登録:VOLUME-

      setItem("10","SCENE:./white.jpg") ;         // シーン1スタート(タイトルの表示)
    :
      setItem("30","CUT") ;                       // シーン1ストップ
    :
    :
      setItem("9999","END") ;                     // シナリオの終了

      // サウンドコントロールのパネルをON/OFFする
      setItem("10000","SNDCTL:PANEL:All") ;
      setItem("10010","RETURN") ;
      // ミュート
      setItem("10100","SNDCTL:MUTED") ;
      setItem("10110","RETURN") ;
      // ボリューム+
      setItem("10200","SNDCTL:VOLUME:+") ;
      setItem("10210","RETURN") ;
      // ボリューム−
      setItem("10300","SNDCTL:VOLUME:-") ;
      setItem("10310","RETURN") ;


【ファンクションボタンの登録方法】(マウス専用) *2)

 キーボードの様に同じファンクションキー機能が押しボタンとして操作できる様に登録できます。

 その方法は、"Mouse.js"に記述してある
 "dspOP2MSG"変数に、使いたいファンクションボタンの機能を追加記述するやり方で、
 例えば、ゲームデータを保存読み出しするボタンの機能を行いたい場合は、
  dspOP2MSG = savedat + loaddat ;
 と、します。(下図の様になります)

 保存/読み出しボタンの図

 ファンクションボタンの機能を使わない場合は、dspOP2MSG = "";としましょう。

 ファンクションボタン機能の種類

 savedat
  ゲームデータをcookieに保存する機能(サーバーにアップロードしないと動作せず)
  var savedat = "<button type=\"button\" class=\"SAVEDAT\" onclick=\"SAVEDATSubMS()\">
          <font size=\"2\">データ保存</font></button>" ;
  function SAVEDATSubMS() {
    gosubRET = 0 ;
    scenario[0] = "SAVEDAT" ;
    scenario[1] = "TestSK" ;         // cookieのキー値を指定する
    CookieSub() ;
    storageINDEX = sceneNO ;
  }
  ボタンの名前を変えたければ"データ保存"を変えましょう。
  cookie保存キー値の名前を変えたければ"TestSK"を変えましょう。

 loaddat
  cookieからゲームデータを読み出す機能(サーバーにアップロードしないと動作せず)
  var loaddat = "<button type=\"button\" class=\"LOADDAT\" onclick=\"LOADDATSubMS()\">
          <font size=\"2\">データ読込</font></button>" ;
  function LOADDATSubMS() {
    gosubRET = 0 ;
    scenario[0] = "LOADDAT" ;
    scenario[1] = "TestSK" ;         // cookieのキー値を指定する
    CookieSub() ;
    if (gosubRET != 0) storageINDEX = gosubRET ;
  }
  ボタンの名前を変えたければ"データ読込"を変えましょう。
  cookie保存キー値の名前は、"savedat"と合わせましょう。

 txtoff
  キャンバスに表示されるテキスト文章の表示をON/OFFする機能
  キャンバス画像をダウンロードする際に操作すれば良いでしょう。
  var txtoff = "<button type=\"button\" class=\"TXTOFF\" onclick=\"TXTOFFSubMS()\">
         <font size=\"2\">テキストON/OFF</font></button>" ;
  function TXTOFFSubMS() {
    TXTOFFSub() ;
    storageINDEX = sceneNO ;
  }
  ボタンの名前を変えたければ"テキストON/OFF"を変えましょう。

 saveimg
  キャンバス画像のダウンロード機能(サーバーにアップロードしないと動作せず)
  var saveimg = "<button type=\"button\" class=\"SAVEIMG\" onclick=\"SAVEIMGSubMS()\">
          <font size=\"2\">ダウンロード</font></button>" ;
  function SAVEIMGSubMS() {
    let aTag  = document.createElement('a') ;
    aTag.href = canvas.toDataURL('image/jpeg', 1.0) ;
    aTag.download = "temp.jpg" ;   // ファイル名を指定する
    aTag.click() ;
    dspOP.innerHTML = "ダウンロードします。<br>完了後、何かキーを押してください。" ;
  }
  ボタンの名前を変えたければ"ダウンロード"を変えましょう。
  保存ファイル名を変えたければ"temp.jpg(現在jpgのみ)"を変えましょう。

 sndPanel
  サウンドコントロールの制御パネルを表示する機能
  var sndPanel = "<button type=\"button\" class=\"SNDPANEL\" onclick=\"SNDPANELSubMS()\">
          <font size=\"2\">音のパネルON/OFF</font></button>" ;
  function SNDPANELSubMS() {
    scenario[1] = "PANEL" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音のパネルON/OFF"を変えましょう。

 sndVOLup
  サウンドのボリュームUP機能
  var sndVOLup = "<button type=\"button\" class=\"SNDVOLUP\" onclick=\"SNDVOLUPSubMS()\">
          <font size=\"2\">音をUP</font></button>" ;
  function SNDVOLUPSubMS() {
    scenario[1] = "VOLUME" ;
    scenario[2] = "+" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音をUP"を変えましょう。

 sndVOLdown
  サウンドのボリュームDOWN機能
  var sndVOLdown = "<button type=\"button\" class=\"SNDVOLDOWN\" onclick=\"SNDVOLDOWNSubMS()\">
           <font size=\"2\">音をDOWN</font></button>" ;
  function SNDVOLDOWNSubMS() {
    scenario[1] = "VOLUME" ;
    scenario[2] = "-" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音をDOWN"を変えましょう。

 sndMuted
  サウンドのミュート機能
  var sndMuted = "<button type=\"button\" class=\"SNDMUTED\" onclick=\"SNDMUTEDSubMS()\">
          <font size=\"2\">音のミュート</font></button>" ;
  function SNDMUTEDSubMS() {
    scenario[1] = "MUTED" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音のミュート"を変えましょう。

 sndPause
  サウンドのポーズ機能
  var sndPause = "<button type=\"button\" class=\"SNDPAUSE\" onclick=\"SNDPAUSESubMS()\">
          <font size=\"2\">音の一時停止/再開</font></button>" ;
  function SNDPAUSESubMS() {
    scenario[1] = "PAUSE" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音の一時停止/再開"を変えましょう。

 sndStop
  サウンドの停止機能
  var sndStop = "<button type=\"button\" class=\"SNDSTOP\" onclick=\"SNDSTOPSubMS()\">
          <font size=\"2\">音の停止</font></button>" ;
  function SNDSTOPSubMS() {
    scenario[1] = "STOP" ;
    SNDCTLsub() ;
  }
  ボタンの名前を変えたければ"音の停止"を変えましょう。

 menudsp
  設定メニュ画面の表示
  var menudsp = "<button type=\"button\" class=\"MENUDSP\" onclick=\"MENUDSPSubMS()\">
          <font size=\"2\">設定</font></button>" ;
  function MENUDSPSubMS() {
      storageINDEX = 2000 ;     // シナリオ番号2000にジャンプ(設定メニュの有る場所)
      MainProc() ;
  }
  ボタンの名前を変えたければ"設定"を変えましょう。
  storageINDEXの変数に、設定メニュのシナリオがあるシナリオ番号を設定します。
  
  例)
      // 設定メニュー画面
      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") ;

 以下は、"Multimedia.js"に記述してあります。

 vdoVOLup
  ビデオのボリュームUP機能
  var vdoVOLup = "<button type=\"button\" class=\"VDOVOLUP\" onclick=\"VDOVOLUPSubMS()\">
          <font size=\"2\">音をUP</font></button>" ;
  function VDOVOLUPSubMS() {
    scenario[1] = "VOLUME" ;
    scenario[2] = "+" ;
    VDOCTLsub() ;
  }
  ボタンの名前を変えたければ"音をUP"を変えましょう。

 vdoVOLdown
  ビデオのボリュームDOWN機能
  var vdoVOLdown = "<button type=\"button\" class=\"VDOVOLDOWN\" onclick=\"VDOVOLDOWNSubMS()\">
           <font size=\"2\">音をDOWN</font></button>" ;
  function VDOVOLDOWNSubMS() {
    scenario[1] = "VOLUME" ;
    scenario[2] = "-" ;
    VDOCTLsub() ;
  }
  ボタンの名前を変えたければ"音をDOWN"を変えましょう。

 vdoMuted
  ビデオのミュート機能
  var vdoMuted = "<button type=\"button\" class=\"VDOMUTED\" onclick=\"VDOMUTEDSubMS()\">
          <font size=\"2\">音のミュート</font></button>" ;
  function VDOMUTEDSubMS() {
    scenario[1] = "MUTED" ;
    VDOCTLsub() ;
  }
  ボタンの名前を変えたければ"音のミュート"を変えましょう。

 vdoPause
  ビデオのポーズ機能
  var vdoPause = "<button type=\"button\" class=\"VDOPAUSE\" onclick=\"VDOPAUSESubMS()\">
          <font size=\"2\">一時停止/再開</font></button>" ;
  function VDOPAUSESubMS() {
    scenario[1] = "PAUSE" ;
    VDOCTLsub() ;
  }
  ボタンの名前を変えたければ"一時停止/再開"を変えましょう。

 vdoStop
  ビデオのストップ
  var vdoStop = "<button type=\"button\" class=\"VDOSTOP\" onclick=\"VDOSTOPSubMS()\">
          <font size=\"2\">音の停止</font></button>" ;
  function VDOSTOPSubMS() {
    scenario[1] = "STOP" ;
    VDOCTLsub() ;
  }
  ボタンの名前を変えたければ"音の停止"を変えましょう。

[サンプル4]


【サウンドと"BTNSET"と"MENUの使い方】 *2)

 サウンド関連コマンドと押しボタンの使い方と設定メニュー画面の表示方法等は下記サンプルを
 参考にしましょう。
[サンプル5]


【ビデオ機能の使い方】 *2)

 動画関連コマンドは下記サンプルを参考にしましょう。
[サンプル6]


 
GOSUBコマンドの使い方】 *3)

サンプル7用
[サンプル7]

 サブルーチン(サブシーン)の作り方は、GOSUB/SUBSCENE/RETURNコマンドで行います。
      // シーン1
      setItem("110","SCENE:./utanoishi.jpg") ;
      setItem("120","ADDIMG:450:90:./nonoka2.gif") ;
      setItem("130","DELAY:1000") ;     // "ADDIMG"が表示終わるまで待つ
      setItem("140","GOSUB:1000") ;
      setItem("150","TXTOUT:bold 18px serif:red:52:21:ののか") ;
      setItem("160","TXTOUT:18px serif:black:52:23:全くよめん!。") ;
      setItem("170","CUT") ;
      // シーン2
      setItem("210","SCENE:./utanoishi.jpg") ;
      setItem("220","ADDIMG:450:90:./nonoka2.gif") ;
      setItem("230","ADDIMG:10:10:./komachi.gif") ;
      setItem("240","DELAY:1000") ;     // "ADDIMG"が表示終わるまで待つ
      setItem("260","GOSUB:1000") ;
      setItem("270","TXTOUT:bold 18px serif:red:52:21:コマチ姫") ;
      setItem("280","TXTOUT:18px serif:black:52:23:【花の色は 移りにけりないたずらに") ;
      setItem("282","TXTOUT:18px serif:black:52:24:       わが身世にふるながめせしまに】") ;
      setItem("290","CUT") ;
      // シーン3
           :
      // シーン4
           :

      setItem("999","END") ;            // シナリオの終了

      // 全シーンに共通するサブルーチン
      setItem("1000","SUBSCENE") ;
      setItem("1020","F_RECT:50:390:540:85:white:0.7") ;
      setItem("1030","L_RECT:50:390:540:85:blue:2") ; *4)
      setItem("1040","F_RECT:50:360:100:30:white:0.7") ;
      setItem("1050","L_RECT:50:360:100:30:blue:2") ; *4)
      setItem("1060","RETURN") ;
 "ADDIMG"が表示終わるまで待つ"とあるが、実際は"DELAY"が終了するまで待つが正しく、
 ローカルで上手く動作しても、アップロードした場合はネットの環境等で"ADDIMG"のファイル転送が
 遅くなる場合が有ります、その場合は"ADDIMG"が表示していないのに"GOSUB"が動作する場合が
 あります。


【デバックや試作を行うTESTコマンドやその他】

●新しい機能の試作等に利用すれば良いでしょう。
 ”TESTfunc()”の関数があるので利用しましょう。
 例) setItem("100","TEST:パラメータ1:パラメータ2") ;

 // コマンドを追加したり等の実験用関数
 function TESTfunc() {
  let no = (storageINDEX-1) ;
  let p = (no - sceneNO) ;
  sceneEXEC[p] = 1 ; // 実行中フラグON

  let id = setInterval(function(){
  // 自分の行より前は全て終了しているか?
  let exec = 0 ;
  for (j=0 ; j<p ; j++) {
  if (sceneEXEC[j] == 1) exec = 1 ;
  }
  // 今の実行行より前の行まで全て実行終了なら処理する
  if (exec == 0) {
  // シナリオを読み込む
  ScenarioGet2(no) ;
  // 追加した行にエラーがあった場合、
  // この関数が止まらなくなるのでここで関数を止めて置きます。(1回のみ実行)
  sceneEXEC[p] = 0 ; // 実行中フラグOFF
  clearInterval(id) ; // setIntervalを止める

  /**** この場所に追記しましょう。 ***/

  }
  }, sceneWAIT) ;
 }

●シナリオを記述している時、最初から再生していたら大変ですね。
 そんな時は、"Scenario.js"に記述してある
      setItem("0","START:./Start.jpg") ;          // シナリオの開始
//setItem("1","GOTO:900") ; // テスト用直接ジャンプ
 のシーン番号"1"のコメントを外して飛び先を入れれば直接ジャンプするので便利かもね。
 但し、それまでにフラグの設定が有ればそれは当然反映されませんけどね。
 (ジャンプする前にフラグ類はセットすれば良いけどね。)

●デバッグを行いたい場合は、ノベル風を動かし[F12]キーを押しましょう、
 ブラウザーのデバッグコンソールが立ち上がり色々便利に使えます、
 ブレークポイントも使えるしぃ、ユーザーメッセージも表示できます。
 ユーザーメッセージは、スクリプトファイル中にconsole.log("Helo")を記述すれば良いです。

●デバッグ時に、どのシナリオ番号を通過したかを表示させたい場合があるでしょう、
 そんな時は、"Nobel-ish.js"内のScenarioGet()関数にある
 //console.log(storageINDEX - 1) ; // ブラウザのデバックコンソールにシナリオ番号を表示する
 のコメントを外します。 *3)


立ちキャラと部屋イラスト
 製作者 > にるさん
 HP  > omame.fool.jp/"
     (リンクが切れて引っ越し先不明)

巫女キャラ
 製作者 > ミステリ缶さん
 HP  > www4.pf-x.net/~yukirins/myscan/
     (リンクが切れて引っ越し先不明)

ものの怪キャラ
 製作者 > MMMさん
 HP  > ”MMM”・”立ち絵”で検索してみよう
      (https://twitter.com/mmmtarow)

ののかキャラ
 製作者 > eri.さん
 HP  > www.ve-n.net/eri/



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


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