透過画像が透過されない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
F

透過画像が透過されない

#1

投稿記事 by F » 14年前

先ほどシューティング会話での画像プログラムはうまくいったのですが、今度はなぜか透過された画像が透過されず地の白色が表示されてしまいます、なぜでしょうか?

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#2

投稿記事 by kimuchi » 14年前

どうも、先ほどの者です。

DrawGraph( FIELD_X, FIELD_MAX_Y-116 ,img_board[1],FALSE);
これで描画していたと思うのですが、

DrawGraph( FIELD_X, FIELD_MAX_Y-116 ,img_board[1],TRUE);
こう直してみてください。

F

Re: 透過画像が透過されない

#3

投稿記事 by F » 14年前

返信ありがとうございます 
透過はうまくいきましたが
今度はセリフか出されるバー部分にキャラが乗っかってしまいました

バー キャラ 文字 の順番で表示されるので
キャラ バー 文字に変えようと、入れ替えを試しているのですがうまくいきません
画像の読み込みと、どれを入れ替えればうまくいくでしょうか?

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#4

投稿記事 by kimuchi » 14年前

グラフィックの描画は命令された順に上に重なるはずなので、
キャラ画像→バー→文字 の順に描画すればいいと思います。

先ほどのコードをお借りすると、

コード:

     //画像
    if (story[num].type==0)
    DrawGraph(  FIELD_X, FIELD_MAX_Y-116 ,img_board[1],TRUE);
    if (story[num].type==1)
    DrawGraph(  FIELD_X + 152, FIELD_MAX_Y-116 ,img_board[2],TRUE);

   // 背景を暗く
    SetDrawBlendMode(DX_BLENDMODE_ALPHA , 80);
    DrawBox(FIELD_X , FIELD_Y , FIELD_X+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[1] , TRUE);
    DrawBox(FIELD_X , 410 , FIELD_Y+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[0] , TRUE);
    SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);

    // 本文
    DrawFormatStringToHandle(FX + 30 , FMY - 10, color[0] , font[0], buf);
と、こんな感じですかね?

F

Re: 透過画像が透過されない

#5

投稿記事 by F » 14年前

最初にそれをやったんですが 画面を暗く の効果を受けて 画像の明度が下がり、絵が見づらくなってしまいます

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#6

投稿記事 by kimuchi » 14年前

コード:

 
    //画像
    SetDrawBright(255,255,255);
    if (story[num].type==0)
    DrawGraph(  FIELD_X, FIELD_MAX_Y-116 ,img_board[1],TRUE);
    if (story[num].type==1)
    DrawGraph(  FIELD_X + 152, FIELD_MAX_Y-116 ,img_board[2],TRUE);
 
   // 背景を暗く
    SetDrawBlendMode(DX_BLENDMODE_ALPHA , 80);
    DrawBox(FIELD_X , FIELD_Y , FIELD_X+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[1] , TRUE);
    DrawBox(FIELD_X , 410 , FIELD_Y+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[0] , TRUE);
    SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);
 
    // 本文
    DrawFormatStringToHandle(FX + 30 , FMY - 10, color[0] , font[0], buf);
SetDrawBright(255,255,255);を追加してみましたが、
これでは駄目ですか?

F

Re: 透過画像が透過されない

#7

投稿記事 by F » 14年前

残念ながら変化なしのようです。
画面黒 画像 バー セリフ に変えて試してみても
画面が映らなくなったりなどうまくいきませんでした

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#8

投稿記事 by kimuchi » 14年前

さらに
SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);を
SetDrawBright(255,255,255);の上に付けてみて下さい。

自分の所ではこれで大丈夫なのですが・・・。

F

Re: 透過画像が透過されない

#9

投稿記事 by F » 14年前

一体何がダメかわかりませんがうまくいきません

コード:

 //画像
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);
    SetDrawBright(255,255,255);
    if (story[num].type==0)
    DrawGraph(  FIELD_X, FIELD_MAX_Y-416 ,img_board[1],TRUE);
    if (story[num].type==1)
    DrawGraph(  FIELD_X + 152, FIELD_MAX_Y-416 ,img_board[2],TRUE);
 
   // 背景を暗く
    SetDrawBlendMode(DX_BLENDMODE_ALPHA , 80);
    DrawBox(FIELD_X , FIELD_Y , FIELD_X+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[1] , TRUE);
    DrawBox(FIELD_X , 410 , FIELD_Y+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[0] , TRUE);
    SetDrawBlendMode(DX_BLENDMODE_NOBLEND , 0);
 
    // 本文
    DrawFormatStringToHandle(FIELD_X + 30 ,FIELD_MAX_Y - 10, color[0] , font[0], buf); 



    // 名前
    DrawFormatStringToHandle(FIELD_X + 20, FIELD_MAX_Y - 30, color[0] , font[0], story[num].name);

確認ですがこれでいいんですよね?

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#10

投稿記事 by kimuchi » 14年前

はい、大丈夫です。

もしかしたらこれかもしれないのが、

コード:

  // 背景を暗く
    SetDrawBlendMode(DX_BLENDMODE_ALPHA , 80);
    DrawBox(FIELD_X , FIELD_Y , FIELD_X+FIELD_MAX_X , FIELD_Y+FIELD_MAX_Y , color[1] , TRUE);
この部分をカットしてみて下さい。

アバター
kimuchi
記事: 163
登録日時: 14年前
住所: 東京

Re: 透過画像が透過されない

#11

投稿記事 by kimuchi » 14年前

少し訂正です。
SetDrawBlendMode(DX_BLENDMODE_ALPHA , 80);
の部分は残した方がいいかもしれません。

F

Re: 透過画像が透過されない

#12

投稿記事 by F » 14年前

文章カットしたところちゃんと表示されました。
先ほどのから教えていただきありがとうございました

閉鎖

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