RPG◆所持金を常時画面上にテキストで表示

投稿者:Nyan mini rurun9 投稿日:2011/11/21 12:08

RPG型はあまり弄ってなかったから気付かなかったんだけど

warp()すると画面上のテキストが全部削除されるのね…
だから「テキストを常時画面上に表示する」て方法を使ってる人が極僅かなのか



開始スクリプトでテキストエリア作成を定義しておいて
def tukuru()
 #テキスト表示場所作成
 setTextFontColor(192,192,0)
 setVariable("t",createText(256,0,256,40))
 setTextFontColor(255,255,255)
 #テキストイベントフラグ
 setFlag("テキスト作成",false); setFlag("テキスト",true)
end #tukuru()終

def kaku()
 setText(getVariable("t"),getMoney()+getDenomination())
 setFlag("テキスト",false)
end kaku()終

setFlag("テキスト作成",true)
各マップ全部に、どこか1マスに自動開始イベントを設置
有効条件は getFlag("テキスト作成")
tukuru()
更に各マップ全部に、どこか1マスに自動開始イベントを設置
有効条件は getFlag("テキスト")
kaku()
んでお金の変動の際には必ず
addMoney(100); setFlag("テキスト",true)
というようにフラグを一緒に書く。
そしてマップ移動の際には必ず
setFlag("テキスト作成",true); warp(99999,2,3)
というようにすれば常時画面上に所持金が表示されるワケか…
コレ最初に考えた人、苦労し過ぎてタダでは教えられない!て感じだったんだろうね…



開始スクリプトでスタート時のプレイヤーキャラの位置を指定したい場合はwarp()ではなく
warpEvent("playerCharacterEvent", 2,3)
てのを使った方が早くて無難なのね

コメントする

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

コメント一覧

            mini mosmoss(投稿日:2016/12/11 17:01, 履歴)
透過前景の人たちがやってたことなのですが、
ワープするとキャンパスが初期化されることを逆に利用すれば
1マップにつき1つの自動開始イベントで、しかも、
特別なテキスト描画関数を定義せずとも同じことが可能です

自動開始イベントを一つ作り、有効条件に
!getCanvasVisible()

と書く
イベントの中に
#下準備
deleteTextAll()
setCanvasVisible(true)
a=getTextFontSize()
#ここから画面テキストのフォント&枠設定
setTextFontSize(16)
setTextFontBold(true)
setTextFontColor(255,255,255)
setVariable("t",createText(0,0,256,256))
###テキスト本体ここから###
text= "ここにテキストの内容を書く"
###テキスト本体ここまで###
#フォントをデフォルト値になおす
setTextFontSize(a)
setTextFontBold(false)
setTextFontColor(255,255,255)
#実際にテキストを書く
setText(getVariable("t"),text)

と書く
これで、ワープのたびにテキスト関数を書く必要もありません
(ワープ先のマップにも同様の自動開始イベントがあることが条件ですが)
また、ワープ以外の時にテキストの表示内容を更新したい場合は
そのタイミングで
setCanvasVisible(false)

を書く
これで、キャンパスをオフにしてしまえば、
キャンパスオフに反応する自動開始イベントがオンになり、
テキストが更新されます

ユーザー定義関数をまだモノにしてない人や、
ある程度ゲームを作った後で
後付けで常時表示テキストを作るときなんかには
こっちの方が便利だと思います

以上、超絶亀レスポンスで恐縮ですが、
ブログや掲示板でテキスト常時表示について調べた時に
この記事が一番検索性が高かったのでコメントつけさせてもらいました
ありがとうございました