スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

ステータス画面に立ち絵

 2009-02-20
※ ステータス画面の改造で来られた方は、こちらもご覧ください。


そういえば、最近スクリプトの仕様報告が増えました。
なんか1日置きにくるようになって、うれしいです。
[追記]
何か間違いだらけですね。
仕様ではなく使用、1日置きではなく毎日でした。


それと、山田くん さんからのコメントの意味がわからないのですが?
なんの報告でしょう?バグですか?
訂正前の文が拍手、コメント、メールにも見当たらないので困ってます。


さてさて、ステータス画面の講座ですが、すごく面倒になってきました。
ちょっと、未完のダンボールさんを意識して書いてたら、
なんか説明長くなって、ここを説明するならここもしないと?
みたいな感じでどこの説明を省けばいいのかわからなくなってしまいました。

つまりですね、セクションを複製する場合は、
ソースを全選択でコピーするよりも、セクションをコピーして
貼り付けたほうが楽だと言いたかったわけです。

といことで、また今度。
未完のダンボール さんの説明がとてもわかりやすいと思うのでそちら見てください。

で、リクエストは顔グラ以外の画像表示とのことでしたので、
その説明だけでもしたいと思います。

 SS0902201401147.jpg
サンプルソース


画像の表示方法はヘルプに記載されていますので、当然わかると思います。
(何か棘があるように聞こえます?気のせいです。)

ステータス画面なんかは何度も見る可能性がありますので、
表示の度にファイルから読み込まずにメモリに画像を保存して使用するのが効率的です。

つまり、キャッシュを使用するわけですね。
はい、キャッシュの使い方もヘルプに載っているので読んでください。

ところで、ウィンドウの内容がどのようになっているのかご存知でしょうか?
これらは、1枚の画像を作成してその画像に書いたり消したりして表示しています。
だからなんでしたっけ?

あ、だから、その画像に表示したいアクターの画像を上書きしてあげればいいわけです。
ウィンドウの内容の画像は、 self,contents です。
文字などを表示するときに使ってますよね?

では、実際に表示するにはどうすればいいのか。
描画処理は、どのクラスも refresh メソッドで行っていますので、
そこに処理を追加してあげましょう。

立ち絵を表示させる場合は、 draw_actor_face メソッドは不要だと思うので、再定義しちゃいましょう。
(新しいメソッド名を考えるのがメンドウなので。)

まず、Window_Status#refresh の draw_actor_faceの引数を削除して、
立ち絵は一番下に表示させたいので、一番上に持ってきます。
# ウィンドウ内容を全消去
self.contents.clear
# 立ち絵を描画
draw_actor_face
# なんかいろいろ続く
draw_actor_name(@actor, 4, 0)
  ~
draw_equipments(288, 236)

Window_Statusdraw_actor_face を次のようにすると立ち絵が表示できます。
※ 画像ファイルはおまけの立ち絵をそのまま使用しています。
bitmap = Cache.picture("Actor1-1")
self.contents.blt(0, 112, bitmap, bitmap.rect)
えっと、まさかとは思いますが画像はどこに入れるの?(保存)なんて言わないですよね?
ヘルプ見てください。キャッシュの使用方法。

テストプレイで確認すると表示されると思います。たぶん・・・。

で、どのページも同じ画像だったと思います。
なので適当にアクターごとに画像を変更してください。
その辺は、自分で考えてほしいですが一例を。

おまけファイルの名前は、たぶんキャラチップと同じものだと思うので
それを利用して変更したいと思います。
file_name = @actor.face_name + "-#{@actor.character_index + 1}"
bitmap = Cache.picture(file_name)
self.contents.blt(0, 112, bitmap, bitmap.rect)

ファイル名をアクターの名前にしても良いと思います。
bitmap = Cache.picture(@actor.name)
self.contents.blt(0, 112, bitmap, bitmap.rect)


こんな感じになりました。
長文でやる気がなくなった後に書いた記事ですので、
かなり省略してます。質問があればどうぞ。


SS0902133259.jpg
こちらは、おまけということで。
未完成ソース
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/162-2420a1fa
≪ トップページへこのページの先頭へ  ≫
カレンダー
04 << 2017/05 >> 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。