時間経過を計算する方法。

返信する
じゅんじゅん
記事: 6
登録日時: 2018年5月31日(木) 19:45

時間経過を計算する方法。

投稿記事 by じゅんじゅん »

最近質問したものです。連続ですみません。

ゲーム開始からゲームをしていないリアル経過時間を差し引いて経過時間を取得するシステムを作りたいのです。
しかしTimegetを使っても上手くいきません。

年、月、日、時間をそれぞれ別々に取得する必要があり、頑張れば実装できるのでしょうが面倒です。
何かシンプルにまとめて取得して経過時間を抽出する良い方法はないものでしょうか?

よろしくお願いします。
ミズナギ
記事: 27
登録日時: 2023年3月11日(土) 18:20

Re: 時間経過を計算する方法。

投稿記事 by ミズナギ »

こんばんは。
やりたいことは、ゲームのプレイ時間を取得したいということで合っているでしょうか?

いろいろとスクリプトで取得できる情報があって、そのひとつに「プレイ時間」というものが用意されています。
プレイ中のデータをセーブしたときにその時点までのプレイ時間も一緒にセーブされて、ロードしたときはそのセーブされたプレイ時間からカウントが継続されていくので、ゲームをしていない時間を自分で差し引く必要もないです。


とりあえず、

コード: 全て選択

$gameSystem.playtime();
でゲーム起動からの経過フレーム数が、

コード: 全て選択

$gameSystem.playtimeText();
で上記の経過フレーム数を 00:00:00 の形にしたもの(セーブ・ロード画面に表示される「プレイ時間」はこれです)が取得できます。

ただ、これはゲームを起動してからのカウントなので、たとえば、ニューゲームでスタートしてからクリアと見なす任意のタイミング(エンディングシーンの前とかですね)までの範囲をプレイ時間として取得したいということであれば、スタートする際に

コード: 全て選択

◆スクリプト:Graphics.frameCount = 0;
としてフレーム数を一度リセットし、クリアと見なす任意のタイミングで、上記の「プレイ時間」を変数に代入するなりすれば、ゲームをプレイしたおおよその時間として表示できます。

もし、プレイ時間を 00:00:00 ではない別の形(たとえば 00時00分00秒 とか)にしたいということであれば、rpg_objects.js の中の

コード: 全て選択

Game_System.prototype.playtimeText = function() {
が参考になるかと。
(改造する場合、直接は書き換えずに、プラグインの形にするほうが良いです)


一度、Googleなどで「ツクールMV スクリプト」で検索してみると、いろいろ参考になる情報が見つかるかと思います。
じゅんじゅん
記事: 6
登録日時: 2018年5月31日(木) 19:45

Re: 時間経過を計算する方法。

投稿記事 by じゅんじゅん »

ありがとうございます。

説明が間違ってしまいました。すみません。

ゲームをしていないリアル経過時間を含めて経過時間を測定したいんでした。

例えば、ゲーム開始から5時間後に発生するイベントがあって5時間待って再開するみたいな。
ミズナギ
記事: 27
登録日時: 2023年3月11日(土) 18:20

Re: 時間経過を計算する方法。

投稿記事 by ミズナギ »

放置系ゲームのように、時間の経過でイベントが起こるようにしたい、ということでしょうか。
でしたら、
viewtopic.php?t=2077
こちらの記事がちょうどお考えに合うものではありませんか?

ここの掲示板の検索フォームから「時間経過」で検索すると、ほかにも記事が出てきますので、過去の記事からいろいろ参考にしてみるのも良いかと思います。
じゅんじゅん
記事: 6
登録日時: 2018年5月31日(木) 19:45

Re: 時間経過を計算する方法。

投稿記事 by じゅんじゅん »

ありがとうございます!

丁度考えていた仕組みでした!

過去の記事からいろいろと調べてみようと思います。
返信する

“MV:質問”に戻る