ページ 1 / 1
文字消去について
Posted: 2014年8月21日(木) 23:42
by ぴーらの
ゲームのウィンドウにDrawFormatStringで文字を書いて
その文字自体を消す方法とかってありますか?
DeleteGraphみたいな感じで消したいのですが、やり方がわかる方
教えていただけないでしょうか?
Re: 文字消去について
Posted: 2014年8月22日(金) 00:00
by softya(ソフト屋)
DXライブラリなら毎フレーム描画するので、描画をやめれば表示は消えます。
Re: 文字消去について
Posted: 2014年8月22日(金) 00:06
by みけCAT
DXライブラリなら
DeleteGraphは画像のデータをメモリから削除する命令なので、こういうことですか?
コード:
#include <DxLib.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {
// 未使用の警告避け
(void)hInstance;
(void)hPrevInstance;
(void)lpCmdLine;
(void)nCmdShow;
if(ChangeWindowMode(TRUE)!=DX_CHANGESCREEN_OK || DxLib_Init()==-1) return -1;
char* buffer=new char[1024];
lstrcpyA(buffer,"テスト文字列%d号");
// DrawFormatStringで文字を書く
DrawFormatString(100,200,GetColor(255,255,255),buffer,1);
// その文字自体を消す
for(char* p=buffer;*p!='\0';p++)*p='\0'; // 念のため文字のデータも消す
delete[] buffer; // 領域を開放
WaitKey();
DxLib_End();
return 0;
}
Re: 文字消去について
Posted: 2014年8月22日(金) 10:15
by ぴーらの
みけCATさん
僕はゲームを作っていて、敵キャラのHPが0になった
敵を消して、それと同時に敵の頭上に描画していたHPという文字も
消すとゆう作業をしたいのですが
これを実行してみたんですが、敵キャラは消えても文字は描画されたまま
なります。
Delete[]~ のところにブレークポイントを置いて実行してみると
ちゃんとブレークされます。
何が原因なんでしょうか?
Re: 文字消去について
Posted: 2014年8月22日(金) 10:33
by みけCAT
ぴーらの さんが書きました:何が原因なんでしょうか?
プログラムのバグもしくは不適切な設計が原因かもしれません。
現在のソースコードを提示できますか?
Re: 文字消去について
Posted: 2014年8月22日(金) 10:38
by usao
質問文の表現が漠然としているので,もっと具体的な言葉で質問すると良いのではないでしょうか.
(「消す」みたいな言葉で書くと,いろいろな意味に取られる可能性がある.
まぁ,だいたい↓のようなことを言ってるんだろうな,とわかりますけども,
そこを(わざと,あるいは読み違い等で)違う意味に取らてしまう場合があるのが掲示板.)
ここでいう「消す」とは,
「ある状況下で表示(描画)していたものを,ある条件を満たして以降は表示(描画)しない」
ということを言っているのだと思いますが,だとすれば最初からそう書けばそう伝わるでしょうし,
自身でもこのように 具体的に文を書いてみれば,
「とにかく無条件に表示していたのを,ある瞬間を境にして何とかして見えなくしたい」 みたいな話ではなくて
「何らかの条件を満たす場合においてのみ表示を行う」ということが本当にやりたいことだとわかるんじゃないかな.
ここでいう条件とはもちろん「HPの値が0より大きいか否か」であり,
「敵の画像と,HPという文字 の両者を表示するための条件 = HP>0」なのでしょうから,
そのようにコードを書けばよいのではないでしょうか.
コード:
//HPが0以下の値になってるときには 画像も文字も描画しない
if( HP > 0 )
{
敵の画像を表示
"HP"という文字列を表示
}
Re: 文字消去について
Posted: 2014年8月22日(金) 10:58
by みけCAT
「文字を表示されなくする」を「DeleteGraphみたいな感じで消す」と表現しているということは、
DXライブラリを使用しているわけではないということですね。
使用しているOS、言語、ライブラリを教えてください。
Re: 文字消去について
Posted: 2014年8月22日(金) 11:26
by ぴーらの
DxLib を使用しています。
USAOさんの言うとおりです。
大変失礼しました
Re: 文字消去について
Posted: 2014年8月22日(金) 13:56
by softya(ソフト屋)
softya(ソフト屋) さんが書きました:DXライブラリなら毎フレーム描画するので、描画をやめれば表示は消えます。
結局、私の書いたことなんですよね?
と言うことで残る疑問は何でしょうか?