[リストへもどる]
一括表示
タイトルSpriteCopy時の透過色について
記事No75
投稿日: 2008/10/06(Mon) 13:57:32
投稿者罠師
いつもお世話になっております。
先日は、ウィンドウサイズの対応ありがとうございました。
おかげさまで快適に使用させて頂いてます。
実は、それについて少し困った点がありましたので、相談させてください。

ゲーム画面の背景に、SpriteCreateで画像をロードして使用しております。
そして、あるフラグが成立することで、この画像に変化がおきます
(たとえば扉をあけることで、グラフィックがさし変わる)
このとき、全体を入れかえるのではなく、SpriteCopyで一部だけを差し替えたいのですが、透過処理が行われません。
差し替え用の画像を透明背景PNGで作ったりしましたが、だめでした。
透過色を指定しても、コピーすると黒く…… orz

これはワカバの仕様なのでしょうか?

タイトルRe: SpriteCopy時の透過色について
記事No76
投稿日: 2008/10/06(Mon) 22:32:48
投稿者田村(管理人)
参照先http://denkabow.com
罠師さん、こんばんは。

SpriteCopyメソッドは、コピー元スプライト透過情報もコピーします。
コピー元スプライトが正しく透過して表示できるか確認してみてください。
よろしくお願いします。


> いつもお世話になっております。
> 先日は、ウィンドウサイズの対応ありがとうございました。
> おかげさまで快適に使用させて頂いてます。
> 実は、それについて少し困った点がありましたので、相談させてください。
>
> ゲーム画面の背景に、SpriteCreateで画像をロードして使用しております。
> そして、あるフラグが成立することで、この画像に変化がおきます
> (たとえば扉をあけることで、グラフィックがさし変わる)
> このとき、全体を入れかえるのではなく、SpriteCopyで一部だけを差し替えたいのですが、透過処理が行われません。
> 差し替え用の画像を透明背景PNGで作ったりしましたが、だめでした。
> 透過色を指定しても、コピーすると黒く…… orz
>
> これはワカバの仕様なのでしょうか?

タイトルRe: SpriteCopy時の透過色について
記事No77
投稿日: 2008/10/07(Tue) 15:43:10
投稿者環境のせいでしょうか?
…ということは、私の環境のせいなのでしょうか?
テストした画像とソースを上げておきますので
どこが悪いのか指摘していただけるとありがたいです。

まずは使用した素材です。
http://shibekun.s5.xrea.com/gallery/sozai.jpg

初期化は以下で行いました
w.Initialize(100, 100, Helper.ScreenColor.Full, Helper.SpriteSize.Max1024)

SpriteShowで背景の上に置いた場合はこうなりました。
赤については、透過色を黒で指定してます。
カラーキー指定のため、アンチエイリアスぶんが黒枠になっていますが背景は透過しています。
青については問題なくアンチエイリアスまで透過しています。
http://shibekun.s5.xrea.com/gallery/spriteshow.jpg

そしてこちらがSpriteCopyで行った場合です。
http://shibekun.s5.xrea.com/gallery/spritecopy.jpg

いずれのケースも透過せず、黒くなってしまいました。
これは私の環境によるものなのか、何か別に原因があるのか
どうかご教授願います。

タイトルRe^2: SpriteCopy時の透過色について
記事No78
投稿日: 2008/10/07(Tue) 15:46:23
投稿者環境のせいでしょうか?
※失礼しました
青のSpriteCopyのラスト2行は下が正しいものです。

w.SpritePosition("bg", 100, 0, 0)
w.SpriteShow("bg")

結果の画像はそのまま同じものです、

タイトルRe^3: SpriteCopy時の透過色について
記事No79
投稿日: 2008/10/07(Tue) 21:50:28
投稿者田村(管理人)
参照先http://denkabow.com
罠師さん、こんばんは。
詳細な情報ありがとうございます。
こちらでも検証してみます。
ここのところ残業続きのため、検証結果は週末に投稿するかもしれません。
お待ちください。

> ※失礼しました
> 青のSpriteCopyのラスト2行は下が正しいものです。
>
> w.SpritePosition("bg", 100, 0, 0)
> w.SpriteShow("bg")
>
> 結果の画像はそのまま同じものです、

タイトルRe^4: SpriteCopy時の透過色について
記事No80
投稿日: 2008/10/08(Wed) 21:20:08
投稿者田村(管理人)
参照先http://denkabow.com
罠師さん、こんばんは。

罠師さんの投稿内容を間違えて解釈していました。
正しくは、次のとおりです。

SpriteCopyメソッドは、コピー元スプライト透過情報をコピーします。
SpriteCopyメソッドは、コピー先画像を上書きします。
よって、コピー先画像の透過重ね合わせはできません。

お手数をおかけしました。
よろしくお願いします。

> 罠師さん、こんばんは。
> 詳細な情報ありがとうございます。
> こちらでも検証してみます。
> ここのところ残業続きのため、検証結果は週末に投稿するかもしれません。
> お待ちください。
>
> > ※失礼しました
> > 青のSpriteCopyのラスト2行は下が正しいものです。
> >
> > w.SpritePosition("bg", 100, 0, 0)
> > w.SpriteShow("bg")
> >
> > 結果の画像はそのまま同じものです、

タイトルRe^5: SpriteCopy時の透過色について
記事No81
投稿日: 2008/10/08(Wed) 22:46:24
投稿者罠師
お世話になっております、罠氏です。

なるほど…仕様ということですね。
Graphics.DrawImageの併用で解決していくしかないのかな、現状……
できれば、これができるとすごく便利ですので
次回のバージョンアップの時にでも御一考頂けたら幸いです。
※現在、すごくお忙しいようですが……申し訳ありません。
 あくまでも、いちユーザーの希望ということで(謝)

> 罠師さん、こんばんは。
>
> 罠師さんの投稿内容を間違えて解釈していました。
> 正しくは、次のとおりです。
>
> SpriteCopyメソッドは、コピー元スプライト透過情報をコピーします。
> SpriteCopyメソッドは、コピー先画像を上書きします。
> よって、コピー先画像の透過重ね合わせはできません。
>
> お手数をおかけしました。
> よろしくお願いします。
>
> > 罠師さん、こんばんは。
> > 詳細な情報ありがとうございます。
> > こちらでも検証してみます。
> > ここのところ残業続きのため、検証結果は週末に投稿するかもしれません。
> > お待ちください。
> >
> > > ※失礼しました
> > > 青のSpriteCopyのラスト2行は下が正しいものです。
> > >
> > > w.SpritePosition("bg", 100, 0, 0)
> > > w.SpriteShow("bg")
> > >
> > > 結果の画像はそのまま同じものです、