createTextで作成した領域内のフォントを変更する方法(質問掲示板

投稿: Ryouyou mini nanab 投稿:2010/03/13 13:00:13(最新:2010/03/13 20:11:13)
はじめまして。
最近Rmakeにてノベルゲーム制作を始めた者です。

過去の質問や、ヘルプも一通り目を通したのですが
どうしてもわからないことがあります。
もしよければご教授願えればと思います。

タイトルの通りなのですが
createTextで作成した領域内のフォントを変更する命令は
何になるのでしょうか?


【自分でやってみた失敗例】
createText(20, 220, 780, 40)
と、画面テキスト表示領域を作成した後に
setTextFontColor(0, 0, 0)
setTextFontSize(14)
setText(1, "あああああ")

と、スクリプトを組めば
ゲーム画面の左上の方に
黒い文字でフォントサイズが14の「あああああ」という
文章が表示されるのかと思ったのですが、表示されません。
デフォルトの白くフォントサイズ28で表示されます。

speakで書く文章の方には、きちんと反映されています。
なので、
setTextFontColor(0, 0, 0)
setTextFontSize(14)
この2つは、speakにしか適応されない命令なのは
想像がついたのですが
では、createText内のフォントを変更する命令は
何になるのでしょうか?


【他のゲームで見かけた実用例】
例を挙げますとikosamiさん制作の
「みんなの街作り」においては
http://rmake.jp/games/3914/play
人口や西暦などが、黒い文字に変更されています。
なので、必ずフォントを変更する方法が存在するはずなのですが…。


コメントする

コメントするには、ログインする必要があります。

コメント一覧

Ryouyou mini nanab(投稿日:2010/03/13 20:11, 履歴)
アドバイスを元に
テストしたところ無事にフォント変更することが出来ました。

皆さん、丁寧な説明、本当に有難う御座いました!


ikosamiさんの書かれたスクリプトなら
同時に複数の領域にテキストを表示することが出来るわけですね。

ゲーム性の高いノベルゲームを作る場合には
必須のスクリプトになりそうです。

Material 7186 1 mini ikosami(投稿日:2010/03/13 19:20, 履歴)
【他のゲームで見かけた実用例】 のご本人登場です。

setTextFontColor(0, 0, 0)

deleteTextAll()
setVariable("a", createText(650, 0, 220, 220))
setVariable("b", createText(650, 25, 220, 220))
setText(getVariable("a"), "あああああ")
setText(getVariable("b"), "いいいいい")

これで十分ですよ。
上にあるdeleteTextAll()は変数とかを画面テキストに表示すると
2回目からの文字がもともと表示されていたものに重なってしまうので
つけているものです。

上のやつをそのままコピーして中身を書き換えれば
普通に使えます。
Nyan mini rurun9(投稿日:2010/03/13 19:19, 履歴)
あ、なるほど。
使う順序が決まってたわけですね。
Nyan mini rurun9(投稿日:2010/03/13 19:14, 履歴)
こちらも肝心な説明を書いてなかったですゴメンなさい。
要は createText は変数に入れないと意味ないかも、て事です。
もし表示領域番号が異なるという事は、何を何処に表示するのかが違うので。

それとは別で、
setTextFontColor等のフォントの色やサイズ変更はsetTextの直前に書いても反応してくれない場合が多い気がしてます。
何故なのかは知りませんが、createTextより先にsetTextFontColorを書いたりすると良いかも。

以上を踏まえて、後は実際にやってみるだけですな
Zararu128x128 mini dycoon(投稿日:2010/03/13 19:10, 履歴)
Rmakeのご利用ありがとうございます。

現在setTextFontColorなどで
フォントの情報を設定してからcreateTextを
呼ぶと色など変わるのですが、
開発側としてはこの仕様は問題だと考えており、
動作を変更させる方向で考えております。

代わりに"テキスト表示領域のID"を指定して
フォントの情報を変える関数を追加しようと考えております。
追加する時期は明言できませんが
変更をおこなった場合はアナウンスをおこないたいと思います。

ご不便をおかけいたしますが
よろしくお願いします。

Ryouyou mini nanab(投稿日:2010/03/13 18:44, 履歴)
rurun9さん、有難う御座います。

その「ああああ」のフォントの色やサイズを
変更しようとしても出来ない、というのが
今回の質問の主旨なのですが……
長文でわかりにくくて申し訳ありません。


それとも
「表示領域番号を指定して
フォントを変更することが出来る。」という事なのでしょうか?
だとしたら表示領域番号を指定して
setTextFontSize(14)
を命令したい場合はどうすればいいのでしょうか?

私の理解力が足らずに
見当違いのことを言っているかもしれません。
ご容赦下さい。

Nyan mini rurun9(投稿日:2010/03/13 18:06, 履歴)
テキスト表示は「テキスト表示をおこなうもの」の理解が最大の敵ですよね…

単に手順としては
(1)テキストの表示領域を設定する
(2)設定した表示領域番号を指定して、そこにやっと文字を書ける
(3)必要があれば、表示領域番号を指定してそれだけを消す事ができる

なのですがテキスト表示領域番号は自動で割り振られる?ので何か変数を用意して入れておく事で解決できるかと。
つまり
textID=createText(x,y,xx,yy)
setText(textID,"ああああ")
という感じで必ずセットで使えば、変数textIDの中身がいくつだろうが知ったこっちゃありません。
変数textIDはもちろん名前が異なっても大丈夫です
仮にマップシーンを変えてから指定して消す必要がある場合は、textIDを基本変数にしておく必要がある、くらいです