ページ 11

弾の色を追加したいのですが…。

Posted: 2008年11月02日(日) 14:52
by ビギナーン
初めまして。さっそくですが質問があります…。
b6の画像の弾の色を増やしたいのですが、イマイチ増やし方が分からなくて困っています…。

画像をペイントで開いて弾を増やして保存し、実行してみても弾の周りに白い部分が出てしまいます。
しかし白い部分を透過して保存すると弾の中の白い部分まで透過されてしまい、消えてしまいます…。

どうすれば外の白い部分だけを表示せずに弾を表示できるのでしょうか?


質問の意味が分かりにくくてすみません…^^;

Re:弾の色を追加したいのですが…。

Posted: 2008年11月03日(月) 12:47
by Justy

>b6の画像の弾の色を増やしたいのですが

 b6の画像というのがなんのことかわからなかったのですが、
龍神録プログラミングの館のプロジェクト添付の弾画像のことかと、
ふと思い当たりました。

 それで合っているので有れば、Windows付属のペイントで透明を
扱うのは少々厄介です。
 このペイントには透明をきちんと扱うための機能が不足しています。
(厳密には出来なくはないですが・・・)



>しかし白い部分を透過して保存すると弾の中の白い部分まで透過されてしまい、消えてしまいます…。

 Adobe Photoshopや PictBear、GIMPなどのグラフィックソフトで
b6.pngを開くとわかるのですが、この弾の絵の周囲は透明情報が入っています。

 この透明はペイントの透明とは異なり、ペイントではこの透明情報を扱えないので
消えてしまいます。



>どうすれば外の白い部分だけを表示せずに弾を表示できるのでしょうか?

 なのでこの場合は

・ 前述のソフトを使って透明部分を指定する
・ ファイル名に "_a"をつけて透明部分を指定する(DXライブラリ関数リファレンス LoadGraph()参照)

 のうちどちらかである必要があります。

Re:弾の色を追加したいのですが…。

Posted: 2008年11月03日(月) 13:42
by
周りの白い部分だけを透過したい場合、私がやっている一番簡単な方法としては、弾の真ん中の白い部分に少しだけ色をつけてやるやり方です。
白だとR255 G255 B255 なのはわかりますかね?
これでは透過されてしまうので、RGBどれかひとつだけ245とかにすると、見た目は白ですが厳密には白で無いので透過処理はされません。
これが私がいつもやっている透過処理回避の方法です。ほかにもキャラなどで白色を使いたい場合もこれを使えばうまくいくと思います。

Re:弾の色を追加したいのですが…。

Posted: 2008年11月03日(月) 14:31
by Dixq (管理人)
既に解決策は提示して頂いているので他の方法も少し紹介します。
弾画像は白さえあればどんな色にでも出来ます
(画像全体が一色になりますが)
描画の輝度設定でRGBが指定出来ますよね。
そこで例えば(255,0,0)として白い画像を描画すればRの値だけ残した赤の画像として描画されます。
同じ画像で多くの色を表現するときや、レインボー弾みたいなものを作りたい時はこの方法を使ってもいいかもしれません。

後、ここの掲示板は
・ゲームプログラミングの館の質問
・シューティングゲームの館の質問
・龍神録プログラミングの館の質問
・サンプルプログラミングの館の質問
・C言語一般の質問
などの為にあるものなので、何の質問か次から具体的に書いていただけると助かります。
(例えば今回の場合、龍神録プログラミングの館の画像についての質問で、b6とはdat\\bulletフォルダの画像であるなどの補足を)

Re:弾の色を追加したいのですが…。

Posted: 2008年11月03日(月) 23:17
by ビギナーン
なるほど…勉強になりました。

Justyさん、藍さん、管理人さん

皆様丁寧な解説ありがとうございました!



> 後、ここの掲示板は
> ・ゲームプログラミングの館の質問
> ・シューティングゲームの館の質問
> ・龍神録プログラミングの館の質問
> ・サンプルプログラミングの館の質問
> ・C言語一般の質問
> などの為にあるものなので、何の質問か次から具体的に書いていただけると助かります。
> (例えば今回の場合、龍神録プログラミングの館の画像についての質問で、b6とはdat\\bulletフォルダの画像であるなどの補足を)

すみません…。以後気をつけます…m__m