こんばんは。
1周まわってWindowsMediaPlayerが一番使いやすいぽりです。
OSの話。
教授「OSの中で一番使いやすいのってどれかな。」
K君「Windows XPですかねー」
教授「XPか?Vistaのほうが機能が多くて便利だと思うのだがね。」
K君「
Vistaはダメダメです」
教授「そうか。じゃあところで君のパソコンのOSは何かな?」
K君「え?Windows Vistaですけど。」
あれ?
![拍手](/admin/img/clap_button/001.gif)
自分で苦労して作り上げたシステムが実は
ちょっとした工夫で簡単に出来てしまうと分かった時の脱力感、あれは結構デカいもんなのですね。
例えば↑の「デンコウカラオケプレーヤー」歌詞表示部分。曲のタイミングにあわせて歌詞が移動するスピードを合わせるために
「指定した文字列変数の文章の長さを調べる」イベントが必要になります。
深夜の頭まわってない時に作ったのでどうしてもいい方法が浮かばず、
「文字1文字切り出しをループして、文字列変数が空になるまでループした回数=文字列の長さ」というごり押し方法を用いてました。
しかしこの方法の問題は、「全角も半角も同じ1文字としてカウントされる」こと。あと「文字列が長いと数百回ループさせなくてはいけない」こと。出来れば「50000回制限に引っ掛かりそうなものは極力避けつつ、半角は0.5文字としてカウントしてくれる」アルゴリズムが欲しいのです。
いい方法はないかと模索している時、とある方法がふと浮かぶ。
文字列をピクチャで表示→「変数操作+」の「ピクチャの大きさ(横)」
取得出来ちゃったよ。
これは「ウディタの初期フォントがMSゴシックであること」「MSゴシックが等幅フォントであること」をうまく使った方法なんですが、いやはやたった2イベントで解決できるとは_| ̄|○
※簡単な使い方
1.長さを調べたい文字列変数をAとする
2.「文字列操作」→「Aから\nを全消去する」(文字列を1行にする必要があるため)
3.「ピクチャ」→「文字列」→「\f[10]\s[A]」を表示(←必ず等幅フォントで表示させる事、表示させたくないなら透明度0でOK)
4.「変数操作+」→「ピクチャの大きさ(横)」
5.4で取得した数÷10=Aの文字列の長さ(半角は0.5として数えてある)
PR