幻日幻月環

作成した伺かの更新情報などをつぶやくところ

バルーンにサイコロを表示

この記事は伺か Advent Calendar 2014に投稿したものです。
この記事にあるスクリプトは、SSP/2.3.34以降で動かすことを前提としています。

里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。

今回は、バルーンにサイコロを表示する。
サイコロを振る機能を作りつつ、アスキーアートでその出目を表示してみます。
ただ結果を数字で出すよりも、より視覚的な表現に出来ます。

詳細は続きに。
以下サンプルは、preタグを使っていますが、場合によってはタブや改行がコピーできないかもしれません。

さくらスクリプトのいくつかは、バルーン上での見た目を変更することが出来ます。
例えば、太字にしたり、斜体にしたり、画像を貼ったり。
昔のHTMLファイルみたいなものだと考えると近いかもしれません。
ただし、当然フレームだとか、要素の入れ子だとか、そういうのは出来ません。

今回はその中でも特に、文字の表示位置を変えるさくらスクリプト、\_l[x,y]を紹介します。

里々の辞書に、ランダムトークとして記述した例が以下です。
さくらスクリプトは全て半角で記述します。全角で書くと動きません。



:現在位置を\_l[100,50]指定してから\_l[@-50,@20]ちょっと左下にずらす
その後普通に改行する


実行結果
dice_sample01.png

最初のさくらスクリプト\_l[100,50]は、表示したい位置を直接設定しています。
それに対し、次のさくらスクリプト\_l[@-50,@20]は相対的な指定です。
これは、現在位置の左側50pixel、下側20pixel移動せよ、という効果となります。
なお、左側の数字は、プラスなら右方向、マイナスなら左方向に移動します。
右側の数字は、プラスなら下方向、マイナスなら上方向に移動します。

また、直接指定だけではなく、文字サイズ依存の指定も可能です。
数字の代わりに、1emと書くと、現在の文字の高さに変換されます。
等幅フォントなら、ちょうど全角1文字分、上下左右への移動が出来ます。
SSPのデフォルトである「MS ゴシック」は等幅フォントです。



:普通に表示\_l[0,@1em]下に1文字分ずらす
\_l[0,50]普通に表示\n下に1行分ずらす


実行結果
dice_sample02.png

1文字下にずらすと、なんだか文字が詰まって表示されます。
これは改行時には、余白が自動的に追加されるためです。
\_l[0,@1em]というさくらスクリプトでの指定だと、余白が追加されません。
「この余白が追加されない」ということが優位に働く場合があります。
それは罫線記号を表示する場合です。



:改行だけだとつながらない
┏━┓
┃ ┃
┗━┛
\\_l[0,@1em]で1文字下に下げると繋がる
┏━┓\_l[0,@1em]┃ ┃\_l[0,@1em]┗━┛


表示結果
dice_sample03.png

このように余白が入らないため、ミニゲームを作る時には役立つこともあるでしょう。


今回はサンプルとして、サイコロを表示します。
結果を数字だけで表示するよりも、図が出た方が見た目も楽しさも増すでしょう。
まず、サイコロの表示を全て作ってしまいます。


@サイコロ表示1
┏━━━┓\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃ ● ┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示2
┏━━━┓\_l[@-5em,@1em]φ
┃◯  ┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃  ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示3
┏━━━┓\_l[@-5em,@1em]φ
┃◯  ┃\_l[@-5em,@1em]φ
┃ ◯ ┃\_l[@-5em,@1em]φ
┃  ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示4
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃   ┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示5
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃ ◯ ┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]
@サイコロ表示6
┏━━━┓\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┃◯ ◯┃\_l[@-5em,@1em]φ
┗━━━┛\_l[@0,@-4em]


「φ」は次の文字を無効にします。
φ(0φ)と書くと、サーフェス変更にならず、(0)がそのまま表示されます。
行末につけると、改行がなかったことになります。
そのため、上記の「サイコロ表示」は全て、候補が1個しかない単語群となります。
ちなみに、\_l[@0,@-4em]は、\_l[,@-4em]と書いても同じです。@0は省略出来ます。

上記の6個を辞書に書き込んだ後、以下のように使います。
\_qは、挟まれた部分が瞬間表示されるさくらスクリプトです。



$サイコロ1=(乱数1~6)
$サイコロ2=(乱数1~6)
$サイコロ合計=(サイコロ1)+(サイコロ2)
:サイコロを2個ふるよー。
\_q(サイコロ表示(サイコロ1))(サイコロ表示(サイコロ2))\_q




(サイコロ1)と(サイコロ2)が出たよ。
合わせて(サイコロ合計)だね。


実行結果
dice_sample04.png


\_l[x,y]は使い方次第で色々な表示効果を得られます。
例えば、メニュー画面を以下のように書くと、先に選択肢が表示され、トーク中でも選択肢を選べるようになります。


*0つつかれ


_◯話して
_◯喋り頻度
\_l[0,0]メニューの表示? \w9\w9えー、\w9どうしよっかなー。


また、演出としても色々なことが出来るでしょう。
以下は、「文字を逆から表示してみたり」という文字が、後ろの「り」から前に向かって表示されます。



:\_l[12em,@0]り\_l[@-2em,@0]た\_l[@-2em,@0]み\_l[@-2em,@0]て\_l[@-2em,@0]しφ
\_l[@-2em,@0]示\_l[@-2em,@0]表\_l[@-2em,@0]ら\_l[@-2em,@0]か\_l[@-2em,@0]逆φ
\_l[@-2em,@0]を\_l[@-2em,@0]字\_l[@-2em,@0]文

PageTop

コメント


管理者にだけ表示を許可する