DirectDraw7.0のSDKを使い16ビットモードでアルファブレンドを使い、フェードインフェードアウト処理をするにはどうしたらいいんでしょうか?
ちなみに開発環境はVisual C++ 6.0で、OSは98とXPの二つを使っています。
いろいろサイト等を見て回ったのですが。なかなか分かりやすいサンプルがなかったのでここに質問させていただきました。
勿論、サンプルプログラムが載っているサイトの紹介や、
この本読めばわかるよって言うのがありましたら
それでも全然助かります。
ゲーム作成をしているのですが、その上で欠かすことの出来ない処理なので
知っている方がいらしたらぜひお願いします。
この辺かな?
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=14&vew=5159
ここで「アルファ」で検索すると結構いろいろ出てきますよ。
うっ、リンクが無効になっちゃってる。
http://bbx.hp.infoseek.co.jp から入ってください。
ボコノン教徒様お返事ありがとうございます。
さっそく拝見させていただいたのですが、ちょっと私にはイマイチ
内容が理解できないのです・・・。部分的な解説は大変詳しくて分かりやすかったのですが、その仮定までいくやり方や、根本的なことがよくわかっていないのでちょっと理解しにくくて(ホントにすいません)
よろしければ、もう少し情報等をお願いします。
どうもはじめまして^^
守護さんへ、ひとまず何が理解できていて
何処がわからないかを、まとめてみてはどうでしょう
根本的なといわれてもアドバイスしにくい^^;
私も(自称)ゲーム系専門分野なのでアドバイスしてあげたいです
私はこちらがオススメです。
http://www.sun-inet.or.jp/~yaneurao/
「BM98'S ROOM つう」
このサイトの、【Road To Super-Programmer】 というコーナーがすごく参考
になります。過去ログから読むと DirectDraw や画像処理について詳しくなれ
ると思います。
16ビットということは、RGB555 or RGB565ですよね。
自前で計算するとすれば、フェードイン時のRed値は
以下のように計算すればよいのでは。Green、Blueも同様
int n = 2の5乗;
for (int i=0 ; i<n ; i++){
int 新しいRed値 = ObjectのRed値*i + 背景のRed値*(n-i);
}