合計 昨日 今日

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

[このトピックは解決済みです]

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: かるた
[URL]
Date: 2017年4月20日(木) 21:00
No: 1
(OFFLINE)

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

初めましてかるたと申します。
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; // ソフトの終了
}
です。よろしくお願いします。

Name: みけCAT
[URL]
伝説なるハッカー(660,241 ポイント)
Date: 2017年4月20日(木) 22:20
No: 2
(OFFLINE)

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

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

かるた さんが書きました:どうすれば、〇秒間文字が表示され、その後消えるプログラムが作れますか。

例えば、最初は文字を表示する状態になり、○秒経ったら文字を表示しない状態になるプログラムを作るといいと思います。
コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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個目を削除しました
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Name: かるた
[URL]
Date: 2017年4月21日(金) 07:44
No: 3
(OFFLINE)

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

[解決!]

できました。ありがとうございました。

お礼の回答とですいませんが、
コード[C++]: 全て選択
1
 と
を試させてもらいます。
コード[C++]: 全て選択
1
2
3
4
5
6
7
8
#include<stdio.h>
 
int main(void)
{
 
    printf("hello world");
    return 0;
}


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[29人]