ニコニコ動画で三目並べ

ニコニコ動画のスクリプト『ニコスクリプト』の話。
試験期間中というのもあって(*)、こういうものを作ってみました。

あと、このスクリプトでの簡単なアクションゲームの作り方も思いついたんですが、
残念ながら現状ではLispインタプリタは作れそうにありません。
個人的なニコスクリプトの未公開命令のまとめ

  • 基本
    未公開命令を使う時は行頭にスラッシュをつける。
    処理の列はセミコロンで区切る(二つ目以降の命令にスラッシュは不要)
    『時間::/命令1;命令2;…;命令n』が基本の形
    式はJavaScriptな「気分」で書ける(実際はかなり制約がある)
  • commentTrigger(then:処理の列, timer:SEC)
    コメントが入力された(正確には画面に表示された)ときに処理を実行する。他人のコメントでも処理が実行される
    SEC秒の間のみ有効となり、有効時間内は何度でもコメントの数だけ処理が実行される
  • chat
    commentTriggerの中で使用する『変数』(命令ではない)
    chat.messageにはコメントの内容が入っている
    chat.isYourPostが真の時、そのコメントは現在の視聴者が入力したものである
  • if(when:条件式,then:処理の列)
    条件式は色々書ける(比較は==で。&&等も使用できる)
    ifの中にifを書くこともできる
  • drawText(text:文字列, size:サイズ, color:0xRRGGBB, x:X座標, y:Y座標)
    画面上に文字列を表示する。何もしなければずっと残り続ける
    座標は画面中心を(0,0)とし、指定した座標に文字列の中心がおかれる
    drawTextの戻り値を利用して属性(textとか)を変更できる
    visible属性にtrue/falseを入れて表示/非表示を切り替えられる
    例) t = drawText(text:””,size:30,color:0xRRGGBB,x0,y:0); t.text=”ほげ”
  • 文字列1.indexOf(文字列2)
    文字列2が文字列1の何文字目でマッチしたかを返す
    マッチしなければ-1が返る
    文字列1/2には変数も使用可能
    例) chat.message.indexOf(t.text)

ざっとこんな感じです。あとは、1行に沢山書きすぎると動かないとか。
心を無にして書き続ければそれなりに何か作れるはず。
(*)試験期間中は逃避エネルギーによってプログラミングの効率は普段の三倍まで上昇する

One Response to “ニコニコ動画で三目並べ”

  1. […] どうもzickです。 2/1に見た夢をきっかけに触り始めたニコスクリプト(正確にはニワン語というらしい?)ですが、 しばらく触っていないうちに色々と機能が追加されており、なんと手続き […]

Leave a Reply