ページ 11

〇〇秒ある動作をするプログラム

Posted: 2017年4月20日(木) 21:00
by かるた
初めましてかるたと申します。
OSはwindows7でライブラリはdxライブラリを使用しています。言語はc++です。
現在、dxライブラリを使ってゲームを作成する練習をしています。
文字をある時間表示して、消すプログラムを考えています。
http://dxlib.o.oo7.jp/dxfunc.html
上のサイトの時間関係の関数からGetNowCount()を使って
例えば、
while (GetNowCount() - StartTime < 6000)
{

}
6秒間過ぎるまでループという処理を考えたとします。
この中にDrawFormatString(200, 200, GetColor(150, 200, 200), "hello.world");
というものを入れれば、「hello.world」という文字が6秒間表示されるのではないかと考え、実行しましたが、
6秒立った後に、文字が表示されてしまいました。
どうすれば、〇秒間文字が表示され、その後消えるプログラムが作れますか。

ちなみに、コードは、
#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int StartTime;
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);


if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {
// 現在経過時間を得る
StartTime = GetNowCount();

// 計測開始から6秒が過ぎるまでループ
while (GetNowCount() - StartTime < 6000)
{
DrawFormatString(200, 200, GetColor(150, 200, 200), "hello.world");
}
}
WaitKey();

DxLib_End(); // DXライブラリ使用の終了処理

return 0; // ソフトの終了
}
です。よろしくお願いします。

Re: 〇〇秒ある動作をするプログラム

Posted: 2017年4月20日(木) 22:20
by みけCAT
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
かるた さんが書きました:どうすれば、〇秒間文字が表示され、その後消えるプログラムが作れますか。
例えば、最初は文字を表示する状態になり、○秒経ったら文字を表示しない状態になるプログラムを作るといいと思います。

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	int StartTime; 
	ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);

	bool displayText = true; // 文字を表示するか
	StartTime = GetNowCount(); // プログラムの開始時刻

	while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {

		if (displayText)
		{
			DrawFormatString(200, 200, GetColor(150, 200, 200), "hello.world");
			if (GetNowCount() - StartTime >= 6000)
			{
				// 6秒経ったら文字を表示しなくする
				displayText = false;
			}
		}
	}
	WaitKey();

	DxLib_End();        // DXライブラリ使用の終了処理

	return 0;        // ソフトの終了
}
※DxLib_Init()が二重になっていたので、2個目を削除しました

Re: 〇〇秒ある動作をするプログラム

Posted: 2017年4月21日(金) 07:44
by かるた
できました。ありがとうございました。

お礼の回答とですいませんが、

コード:

を試させてもらいます。

コード:

#include<stdio.h>

int main(void)
{

	printf("hello world");
    return 0;
}