スクリプト/コツ/自由な位置における画像や文字列の使い方(履歴ID:16)

最終投稿者:Zararu128x128 mini dycoon 更新:2010/01/22 21:09:40

文字列を自由な位置に表示


文字列を自由な位置に配置するには以下のようなコードを書きます。

setVariable("テキスト1", 
  createText(512 - 160, 10, 160, 22))

setText(getVariable("テキスト1"), 
  "テキスト表示")

speak("画面にテキストを表示してみます。")

deleteText(getVariable("テキスト1"))


これで画面に"テキスト表示"という文字列が現れ、
メッセージウィンドウに"画面にテキストを表示してみます。"と
表示されます。

このプログラムの動作を解説していきたいと思います。

setVariable("テキスト1", 
  createText(512 - 160, 10, 160, 22))

まず、テキストを表示する場所を作ります。
x座標は(512 - 160)、 y座標は10の位置に
幅は160、高さは22で表示するように作ります。
このときの原点は左上です。
createText関数の返り値は
「テキスト表示をおこなうもの」を表わす番号です。
「テキスト表示をおこなうもの」を表わす番号は
あとで表示する内容を変えたり、
「テキスト表示をおこなうもの」が必要になくなったら削除するなど、
「テキスト表示をおこなうもの」に対する操作をおこなうときに使います。
「テキスト表示をおこなうもの」を表わす番号を"テキスト1"という変数に保存しています。

setText(getVariable("テキスト1"), 
  "テキスト表示")

ここでは、「テキスト表示をおこなうもの」に対して
"テキスト表示"という文字列を表示するようにしています。
「テキスト表示をおこなうもの」の番号は"テキスト1"変数に保存してありますので
getVariable関数で取得しています。
setText関数は「テキスト表示をおこなうもの」の番号から
「テキスト表示をおこなうもの」を特定し、それに対して"テキスト表示"という文字列を
表示するように命令しています。

speak("画面にテキストを表示してみます。")

スクリプトの実行をとめることで、
テキスト表示がすぐに消えないようにしています。

deleteText(getVariable("テキスト1"))

ここでは、「テキスト表示をおこなうもの」を削除しています。
「テキスト表示をおこなうもの」を特定するためには
「テキスト表示をおこなうもの」の番号が必要なため
"テキスト1"変数から、「テキスト表示をおこなうもの」の番号を
取得しています。

画像を自由な位置に表示


画像を自由な位置に表示するにはたとえば以下のように書きます。

setVariable("画像1",
  showImagePosition((512 - 160) / 2, 64, 74))

speak("画面に画像を表示してみます。")

hideImagePosition(getVariable("画像1"))


これで画面に画像が表示され、
メッセージウィンドウに"画面に画像を表示してみます。"と
表示されます。

このプログラムの動作を解説していきたいと思います。

setVariable("画像1",
  showImagePosition((512 - 160) / 2, 64, 74))

showImagePositionを呼ぶことで、画面に画像ID 74の画像が、
x座標は(512 - 160) / 2、 y座標は64の位置に
表示されます。
そして、showImagePositionの返り値に
「画像を表示するもの」の番号が返ります。
あとで削除をおこなうためにsetVariable関数で変数"画像1"に保存しています。

speak("画面に画像を表示してみます。")

表示がすぐに終わってしまわないように
メッセージを表示しています。

hideImagePosition(getVariable("画像1"))

hideImagePosition関数は
「画像を表示するもの」を削除します。
そのために「画像を表示するもの」の番号から
「画像を表示するもの」を特定し、削除します。
「画像を表示するもの」の番号は"画像1"変数から
取得しています。

変数について

ここでは、変数はsetVariableやgetVariableによる基本変数を使いました。
以下のようにローカル変数を使うことでも実現可能ですが、
id = showImagePosition((512 - 160) / 2, 64, 74)

ローカル変数はゲームを保存したときに変数の内容が保存されません。
ゲームを保存したときに保存される基本変数を使うことを推奨します。

詳しくは
スクリプト/変数
を参照してください。