dxライブラリ初心者です。
今簡単なパズルゲームを作っていて
Draw Format Stringで決めたUIを時間差で3つ表示したいのですがどうプログラムでかけばいいのでしょうか?
時間差は2秒ごとくらいでお願いします。ちなみに時間差で表示させたいUIは
最初に
DrawFormatString(204, 95, WHITE, "%d", sen);
二秒後に
DrawFormatString(204, 115, WHITE, "%d", sen2);
そのまた二秒後に
DrawString(197, 135, "10000", WHITE);
という形でお願いします。初めての投稿なので上手く説明できてないと思いますが
その都度説明しますのでどうか教えてください。お願いいたします。
dxライブラリ 時間差表示について
Re: dxライブラリ 時間差表示について
どこかで時間計測をする必要があります。
DXライブラリを使用して時間計測を行う方法を、Dixqさんが紹介されています。
http://dixq.net/g/08.html
質問の内容をそのままコードにすると、 となります。
DXライブラリを使用して時間計測を行う方法を、Dixqさんが紹介されています。
http://dixq.net/g/08.html
質問の内容をそのままコードにすると、 となります。
-- Let's enjoy programming !!
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: dxライブラリ 時間差表示について
基本的には25130さんの書かれている通りですが、リンク先のコードは全体の処理をとめてしまうことを前提としているので
常にメインループに処理を返す必要があります。
2秒ごとにタイムスタンプを打ち続けるサンプルを作ってみました。(1フレーム=1/60秒未満の誤差はあります)
実行結果
[youtube][/youtube]
実行コード
TimeStump.h
TimeStump.cpp
main.cpp
使用プロジェクト
http://dixq.net/g/01_01.html
常にメインループに処理を返す必要があります。
2秒ごとにタイムスタンプを打ち続けるサンプルを作ってみました。(1フレーム=1/60秒未満の誤差はあります)
実行結果
[youtube][/youtube]
実行コード
TimeStump.h
#pragma once
class TimeStump
{
public:
explicit TimeStump(int index);
virtual ~TimeStump() = default;
bool update();
void draw() const;
private:
const int _index;
const int _firstTime;
int _time;
};
#include "TimeStump.h"
#include <DxLib.h>
constexpr static int INTERVAL = 2000;
TimeStump::TimeStump(int index) :
_index(index),
_firstTime(GetNowCount()),
_time(0)
{
}
bool TimeStump::update()
{
_time = GetNowCount() - _firstTime;
if (_time >= INTERVAL) {
return false;
}
return true;
}
void TimeStump::draw() const
{
DrawFormatString(0, 15*_index, GetColor(255,255,255), "%d", _time);
}
#include "DxLib.h"
#include <list>
#include "TimeStump.h"
using namespace std;
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
int index = 0;
list<TimeStump> list;
list.emplace_back(TimeStump(index++));
while (!ScreenFlip()&&!ProcessMessage()&&!ClearDrawScreen()) {
if (!list.back().update()) {
list.emplace_back(TimeStump(index++));
}
for (const auto& t : list) {
t.draw();
}
}
DxLib_End();
}
http://dixq.net/g/01_01.html
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: dxライブラリ 時間差表示について
オフトピック
おっと、せっかくemplaceになっているのに。
ご指摘ありがとうございます。
ご指摘ありがとうございます。