独学ツクールブログ

ツクールでのオリジナル作品の話を中心に創作関係の徒然な語り。

<< RGSS奮闘記15:文字色をカスタマイズするその5 | main | RGSS奮闘記17:文字色をカスタマイズするその7 >>

[ - ] スポンサーサイト

一定期間更新がないため広告を表示しています

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] RGSS奮闘記16:文字色をカスタマイズするその6

〜前回のあらすじ〜
あーやっと日付が追いついt(ry


それでは、正規表現にマッチした箇所を実際に置換する部分を見ていこう。



まず「¥001」の部分。これは実は1文字(というか1バイト)である。詳しいことを説明するとエントリがいくつあっても終わらないので、ひとまず「バックスラッシュ+8進数の数値」はこれで1文字であると覚えてしまって構わない。

そして「#{$1}」の部分は「後方参照」と「式展開」を使用している。
「$1」が後方参照。直近のパターンマッチの中で、一番初めにある丸括弧の中にマッチした部分の値が入っている。つまり前回の4の部分だ。なのでこれは色指定の数字が入っていることになる。
「#{}」が式展開。この中に式や変数を書くと、その値を文字列化したものを返す。ここでは上記の後方参照が入っているので、この数字が返ることになる。
したがって、「¥c[1]」という制御文字はこの部分で「¥001[1]」に置き換えられる。

さて、仕組みが分かったところでいよいよ本格的に組んでみよう。

まずは置換部分。

text.gsub!(/¥¥[Cc]¥[([0-9]+)¥]/) { "¥001[#{$1}]" }
このままでは括弧の中身が数字しか受け付けていないので、どんな文字でも受け付けるように変更する。ということで「0-9」の部分を正規表現で「すべての半角英数字」を表す記号「¥w」を使用し、以下のように書き換え。ついでなのでiオプションをつけよう。
text.gsub!(/¥¥[c]¥[(¥w+)¥]/i) { "¥001[#{$1}]" }
これで「¥c[red]」や「¥C[FF00FF]」を受け付けるようになった。

実際に文字色を変更して表示させる部分は次回。


タグ:[Ruby] [RGSS] [素材] [Window_Base]

| 2011.01.16 Sunday 21:06 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 21:06 | - | - |

コメント

コメントする






この記事のトラックバックURL

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< October 2019 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM