ニコニコ動画で三目並べ
ニコニコ動画のスクリプト『ニコスクリプト』の話。
試験期間中というのもあって(*)、こういうものを作ってみました。
あと、このスクリプトでの簡単なアクションゲームの作り方も思いついたんですが、
残念ながら現状では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行に沢山書きすぎると動かないとか。
心を無にして書き続ければそれなりに何か作れるはず。
(*)試験期間中は逃避エネルギーによってプログラミングの効率は普段の三倍まで上昇する
[…] どうもzickです。 2/1に見た夢をきっかけに触り始めたニコスクリプト(正確にはニワン語というらしい?)ですが、 しばらく触っていないうちに色々と機能が追加されており、なんと手続き […]