変数の桁によって表示の位置を変えたい
- アサユキ
- 2017年5月14日
- 読了時間: 2分
更新日:8月8日
先ほどぶりです。アサユキです。
先日のCGモードを差分表示にした記事がTwitterでインプレ2000越えしてたのを見て、普段の私のインプレよりはるかに高いので(せいぜい30くらい?)みんな差分表示気になってたんだな~としみじみ思いました。
今回は個人的にメモしておきたいゲーム制作の進捗があったので、覚書です。

今制作中のゲーム画面なんですが、後回しにしていた好感度をチェックできるステータス画面が出来上がりました。
プレイ中のメッセージウィンドウにrollしてあるボタンからsleepgameで飛べます。
(ちなみにこのパーセンテージの数値、ゲーム変数が表示されない~!って数日悩んでたんですが、
数字を表示する前に[s]でゲームを停止させていたという凡ミスが発覚したので穴があったらはいりたい所存です。)
で、この数字MAXが100%何ですが、変数が1桁、2桁、3桁の時によって表示する位置を変えたくて。
だって固定表示にすると、
こうなったり・・・

かといって左側に固定配置すると・・・

こうなって余白がウルトラ不格好じゃないですかー!やだー!
一瞬もう画像で数字作るか……?とか血迷ったんですが、絶対面倒だしデータサイズのことを考えると避けた方がいいなって思ったので、覚えたてのifとelsif,elseを使うことにしました。
;----------------------------------------------------------- *koharu
;進行度が100(3桁)の時
[if exp="f.小春進行度==100"] [ptext layer=1 page=fore text=&f.小春進行度 size=33 x=320 y=467 color=hotpink] @layopt layer=1 visible=true
;進行度が100以外で9よりも大きい時(10~99の2桁の時)
[elsif exp="f.小春進行度>9"] [ptext layer=1 page=fore text=&f.小春進行度 size=33 x=341 y=467 color=hotpink] @layopt layer=1 visible=true
;進行度が100でもなく、10~99でもないそれ以外の時(つまり9~0の1桁の時)
[else] [ptext layer=1 page=fore text=&f.小春進行度 size=33 x=360 y=467 color=hotpink] [layopt layer=1 visible=true] [endif]
;----------------------------------------------------------
こんな感じで条件分岐させることによって座標を変更できるようにしました。
全キャラ分のX値割り出すのしんどかったよ・・・。
多分マイナス値になったり100越えしたりするとレイアウトが崩れるんだろうな…?と思うのですが、
その辺は今回のゲームの仕様上、こちらの管理さえしっかりしていれば問題ないはず。
プレイヤーがアイテムを使ってステータスの値を変えられるようなものだと
もうちょっと手を加えないといけないんだろうけど。
【2025年追記】
えっとお・・・こんなこと↑しなくてよくて~~~~

width(表示範囲)を決めてその中でalign="right"とかして、X座標をキャラごとに決めたらいいです~~
ド素人だったしわかんない感じだったよね!
コメント