描画した文字を消すには?

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

描画した文字を消すには?

#1

投稿記事 by やっくん » 16年前

DXライブラリでDrawString関数を使い描画した文字を消したいのですが、
効率の良い方法がわかりません。
今は他の画像を上から被せて無理やり消してます。

それに加えて、、、

画像を複数読み込んだものを消す時に、
一部を消したいのですが、
消すことができません。

この二つを解決するヒントを教えてもらえないですか?

Mist

Re:描画した文字を消すには?

#2

投稿記事 by Mist » 16年前

> DXライブラリでDrawString関数を使い描画した文字を消したいのですが、
> 効率の良い方法がわかりません。
> 今は他の画像を上から被せて無理やり消してます。

それが一般的かと思います。

> 画像を複数読み込んだものを消す時に、
> 一部を消したいのですが、
> 消すことができません。

消すというのはメモリから画像データを消すということですか?
リファレンスに以下の関数があります。

宣言 int DeleteGraph( int GrHandle ) ;

概略 指定のグラフィックをメモリ上から削除する

やっくん

Re:描画した文字を消すには?

#3

投稿記事 by やっくん » 16年前

解答ありがとうございます。

描画した文字を消すには、
やはりそうするしかないのですか・・・・


画面上の画像を消すと言う前に疑問なのですが、
画像を画像の上に描画したら古い画像のデータは消えてしまいますか?
それとも上から描画した画像をどうにか消すことができたら古いものが現れますか?
その辺りがよくわかりません。

Mist

Re:描画した文字を消すには?

#4

投稿記事 by Mist » 16年前

> 画像を画像の上に描画したら古い画像のデータは消えてしまいますか?

はい。
Aという画像を描画した後に、同じところにBという画像を描画した場合AのデータはBのデータで上書きされて無くなるので、Aをもう一度表示するにはもう一度Aを画面に描画するしかありません。

kazuoni

Re:描画した文字を消すには?

#5

投稿記事 by kazuoni » 16年前

確かに描写された文字を消すには画像やDrawBox等で隠すと消えます。

また、
SetDrawScreen(DX_SCREEN_BACK)
ClearDrawScreen()
ScreenFlip()
を組み合わせることによって、
前ループでDX_SCREEN_BACKに描写したものを消し、
現ループで裏描写→表描写できるので、
前ループでDrawString()と記述してある行を通っていたが、
現ループではその行を通っていないなら、画面上から文字は消えます。(文字を描写しない)
これも一応文字を消すの題意を満たしているかなと思うのですが・・・
文字を消すっというよりも、文字を描写しないっと表現するほうが適切ですかね。
これは、ゲームプログラミングの館にも採用されています。

やっくん

Re:描画した文字を消すには?

#6

投稿記事 by やっくん » 16年前

Mistさん
答えていただきありがとうございます。
これでどうにか前に進めそうです(^^)

kazuoniさん
解答ありがとうございます。
それらの関数は使ってたのですが・・・
館の方も一通り目を通してたのにも関わらず、
知識不足で自分の作る物に応用できると気づきませんでした。
参考になりました♪

やっくん

Re:描画した文字を消すには?

#7

投稿記事 by やっくん » 16年前

解決を付け忘れてたので、解決マークを付けます。

閉鎖

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