ここから本文です

DXライブラリのマスク関数の質問で、マップチップ等のステージの上に黒の幕で画面...

nig********さん

2019/5/2312:07:09

DXライブラリのマスク関数の質問で、マップチップ等のステージの上に黒の幕で画面全体を覆って、マスクで切り抜いて光みたいな演出をしたいのですが、マスクデータになる画像に黄色1色で塗りつ

ぶした画像に円で穴を開けた物を使ってるのですが、これだとピッチリ円で切り抜かれると思います。そこで光のような演出をさせるために切り抜いた円の縁を透明度のグラデーションをかけてみたのですが反映されません。また、マスクデータの画像サイズを大きくした別の画像を用意したりしたら反映されるものとされない物が出てきたりします。質問をまとめるとDXライブラリのマスク関数でのマスクデータのルールや、先程も言ったような光の表現(透明度のグラデーション)を再現するためのマスクデータの作り方を教えてください。

閲覧数:
35
回答数:
1

違反報告

ベストアンサーに選ばれた回答

abi********さん

2019/5/2400:30:22

Microsoft系開発環境では、pngファイルが扱える開発環境と扱えない開発環境があります。
質問のような透明化で様々なことを行なわせたい場合は、pngファイルが扱える開発環境を使う必要があります。
DXライブラリは、pngファイルが扱えない開発環境なので、そろそろ卒業する必要があります。
また、前にも述べましたが、質問者さんの別の質問での二重ループの問題は、DXライブラリは、初心者向けに作られたものなので、仕方がないことです。
二重ループの件も含めて、質問者さんは、DXライブラリを卒業する必要があります。
二重ループの問題は、だいぶ前に回答しましたので、どの質問かは忘れましたが、最近のは以下のものです。

「C言語を使ったゲームでの弾幕の作り方の質問で、自分は、構造体の中にX座標、Y座標、X座標のスピード、Y座標のスピード、存在フラグを作り(全てint型初期値は0)その構造体を1000個用意して、」
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q112080867...

上記の二重ループの問題のことです。
Win32 Application software は、イベントドリブンなのに、DXライブラリは初心者用に強引に手続き型風にしているため、質問者さんのようにループ処理をすることになります。
よって、DXライブラリは、そろそろ卒業するべきです。



[pngファイルを扱えるMicrosoft系開発環境と扱えない開発環境について]
古くからの開発環境では、pngファイルが扱えず、新しい開発環境では、pngファイルを扱えます。

<pngファイルを扱えないMicrosoft系開発環境>
Win32系開発環境
DirectX
DXライブラリ

<pngファイルを扱えるMicrosoft系開発環境>
.NET系の各種開発環境
すなわち、C#系の各種開発環境
Visual Basic系の各種開発環境
C++/CLI系の各種開発環境
UWPと言う新しいタイプのアプリケーションソフトの開発環境(C++/WinRT、C#、C++/CLI、Visual Basic.NET)
UWPにおけるDirectXプログラミング



[pngを扱えない開発環境で、どうやって透明化しているか]
Win32やDirectXでは、pngファイルは扱えません。
しかし、Win32やDirectXでも、透明化のプログラミングが行われています。
どのようにして、透明化を行なっているのか。
32Bit版のbitmapファイルを使っています。
ところで、フルカラーのbitmapファイルは、24Bit版のbitmapファイルです。
R(赤)に8bit、G(緑)に8bit、B(青)に8bit使い、合計24bitです。
これに対して、32Bit版のbitmapファイルも、24Bit版のbitmapファイルと同じです。
違いは、32Bit版のbitmapファイルは、残りの8bitを、プログラマーが自由に使えることです。
自由に使えると言っても、多くが、透明度の指定に使われています。
ただし、pngファイルと違って、32Bit版のbitmapファイルは、そもそも透明化する仕組みはありません。
よって、透明化する仕組みを自分で作る必要があります。
技術的にかなりハードルが上がります。
プログラミングの作業も、かなり多くなります。
しかし、どうしてもチャレンジして見たい場合は、DIBを学んで下さい。
bitmapファイルは、ファイルとしての呼称であり、プログラミング上(メモリ上)では、DIBと言います。
24bitのDIBならば、インターネット上の資料が多くあります。
24ビットDIBでの画像編集を習得したら、それを32ビットDIBに作り直して下さい。



[pngファイルを扱えるMicrosoft系開発環境にチャレンジする場合]
質問者さんは、C言語系(C++)のプログラミングを行なって来たので、C#か、C++/CLIがおすすめです。
C#のほうが学びやすいです。
ただし、C++重視を通したい場合は、C++/CLIを選んで下さい。
C#でもC++との連携が行えますが、C++/CLIのほうが、C++との連携がしやすいです。
また、UWPでのC++系プログラミングでは、C++/CLIを習得していないと厳しいです。
UWPでのC++系プログラミングをするための準備としても、C++/CLIがおすすめです。
まとめますと、C#かC++/CLIがおすすめで、学びやすいと言う意味ではC#で、C++重視と言う意味では、C++/CLIになります。

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる