会話やリザルト画面等に利用するウィンドウの表示方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
AI
記事: 27
登録日時: 13年前

会話やリザルト画面等に利用するウィンドウの表示方法

#1

投稿記事 by AI » 13年前

RPGツクールやウディタなんかだと、小さくて3*3に分割できる画像一つを使って
大きなウィンドウも描画できますよね?
C++界隈ではそういったウィンドウは、基本的にどのように描画されていますか?
やっぱりそういった素材であらかじめ好きな大きさのウィンドウを作り、
それを画像として表示するんでしょうか?
もしくは、自分の考えたやり方ですが
枠の部分は座標指定で逐一描画、
その下に窓の中身となる部分を描画してしまう、という方法が一般的でしょうか?

一番よく使われる方法、もしくはファイルサイズや処理の面で
能率のよい方法を教えていただければ嬉しいです。

アバター
nullptr
記事: 239
登録日時: 13年前

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#2

投稿記事 by nullptr » 13年前

dxwx さんが書きました:RPGツクールやウディタなんかだと、小さくて3*3に分割できる画像一つを使って
大きなウィンドウも描画できますよね?
ツクールやウディタを触ったことが無いのでよく理解ができてないのでもし見当違いだったら申し訳ないのですが、
メインウィンドウとは別のサブウィンドウを作るということでしょうか・・・?
C++界隈ではそういったウィンドウは、基本的にどのように描画されていますか?
やっぱりそういった素材であらかじめ好きな大きさのウィンドウを作り、
それを画像として表示するんでしょうか?
もしくは、自分の考えたやり方ですが
枠の部分は座標指定で逐一描画、
その下に窓の中身となる部分を描画してしまう、という方法が一般的でしょうか?
先の想定を前提にお話ししますが、C++に限らずウィンドウを作る場合はWindowsAPIを利用して作成するのが一般的です。
 
 
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
?
Is the は :
order C++? ✜
     糸冬   
  ――――――――
  制作・著作 NHK
 
 

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#3

投稿記事 by softya(ソフト屋) » 13年前

RPGのツクールやウディタの仕組みに詳しい人がいないので、もう少し説明してもらってよいでしょうか?
dxwx さんが書きました:RPGツクールやウディタなんかだと、小さくて3*3に分割できる画像一つを使って
大きなウィンドウも描画できますよね?
ってのが良く分かりません。
マップの描画の話(1)ではなくて、メッセージやメニューのウィンドウ(2)の話なのでしょうか?

(2)の場合として、DXライブラリやDirectXで描画する場合は単なるグラフィックですから自在に自分でパーツを描画します。
違うのならもう少し説明を詳細にお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
ぱにしん
記事: 58
登録日時: 14年前
住所: 滋賀

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#4

投稿記事 by ぱにしん » 13年前

どうも、元ウディタユーザーです
会話の文字のベースとなるウィンドウですよね

私はウィンドウが必要となる場面作ったことがないのでメジャー方法はお答え出来ませんが、
場合によると思いますね。

画像を用意するのが面倒、だとか、大きさの違うウィンドウがたくさんあるものを作られるならウディタやツクール風にされれば良いと思いますし、逆にウィンドウの大きさの種類が少ないのなら画像を用意されるのが良いと思います。

ソフト屋さんがRPG講座をされているのでそこで会話ウィンドウの表示の解説もあるでしょうから読まれてはいかがでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#5

投稿記事 by h2so5 » 13年前

自分が今作っているゲームでは、以下のような画像を用意してウィンドウを描画しています。
gui_window_base.png
gui_window_base.png (2.24 KiB) 閲覧数: 4971 回
つまりRPGのツクールやウディタと同じような形式です。
この画像を3x3分割して並べることで、様々な大きさに対応させています。

この方法の利点は、ウィンドウデザインの自由度が高いところです。
背景の関係で画像では分かりにくいですが、ウインドウに影も付けています。

欠点としては画像を何度も描画するのと、
半端なサイズに対応するためマスキングを行っているので処理が重いという事が挙げられます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#6

投稿記事 by softya(ソフト屋) » 13年前

なるほど。ウィンドウパーツの話ですね。

私の作ったRPG講座ではウィンドウパーツは一切使用していません。
下地としてDXライブラリのDrawBoxで半透明描画して、周りをDrawLineで囲っているだけです。

気の利いたウィンドウなら、最低限3*3を使うのが定番でしょうね。
会話ウィンドウなら、それこそ分割パーツを使わずにウィンドウサイズのグラフィック一枚絵を使ったりしても良いと思います。
dxwx さんが書きました:一番よく使われる方法、もしくはファイルサイズや処理の面で
能率のよい方法を教えていただければ嬉しいです。
一枚絵が一番簡単です。今時のPCならメモリ的にも速度的にも気にならないと思いますよ。
昔はメモリ節約と色々なウィンドウサイズ作るために3*3分解していただけですから。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#7

投稿記事 by ISLe » 13年前

3x3って真ん中が無駄ですよね。
引き伸ばして描画できるなら縦棒・横棒は1ピクセル分あれば良いので、わたしは2x2+αの画像をよく使いますけど。
ウィンドウ描画用のモジュールは難しいものではないし一回作ってしまえば使い回せますしね。

ウィンドウが開いたり閉じたりするときにアニメーション効果を付けようと思うとけっきょく分割したりマスクしたりして描画することになるので、凝り始めた時点で一枚絵もデメリットが大きくなると思います。

効率云々はC++界隈という分類ではなくプラットフォームによって決まります。
プログラムの仕様にも左右されますね。

AI
記事: 27
登録日時: 13年前

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

#8

投稿記事 by AI » 13年前

説明不足ですみません、
ぱにしんさん、自分の言いたかったことをご説明いただきありがとうございました!
全員の方のご返信を読ませていただきました、結果的には画像用意が一番いいのですね…
結構サイズ違いのものもあったりするのですが、楽ですし、アニメーション効果なども気にしていないので、
今のところ画像用意でいこうと思いました。

お世話になりました!

閉鎖

“C言語何でも質問掲示板” へ戻る