前提・実現したいこと
OpenSiv3dを使ってゲーム制作をしようとしています。クリアタイムを表示したいのですがシーン遷移で表現する方法が分かりません。
シーン遷移で表現したいコード
C++
1# include <Siv3D.hpp> 2 3void Main() 4{ 5 const Font font(50, Typeface::Bold); 6 7 Stopwatch stopwatch(true); 8 9 while (System::Update()) 10 { 11 12 // ストップウォッチの経過時間(秒)を double 型で取得 13 const double t = stopwatch.sF(); 14 15 //ストップウォッチ表示 16 font(stopwatch.sF()).drawAt(140,500); 17 } 18}
やってみようとしてダメだったコード
# include <Siv3D.hpp> // OpenSiv3D v0.4.2 enum class State { Game }; // ゲームデータ struct GameData { double Time = 0; }; // シーン管理クラス using MyApp = SceneManager<State, GameData>; // ゲームシーン class Game : public MyApp::Scene { private: //時間を表示 const DateTime time = DateTime::Now(); const double t = Stopwatch.sF(); //ストップウォッチ Stopwatch stopwatch(true); //時間 double t = 0; public: const DateTime time = DateTime::Now(); const double TimeScore = stopwatch.sF(); } void draw() const override { //時間を表示 //const DateTime time = DateTime::Now(); //const double t = Stopwatch.sF(); //t.draw(); //時間 FontAsset(U"Time")(t).drawAt(10, 10); } }; void Main() { // 使用するフォントアセットを登録 FontAsset::Register(U"Score", 36, Typeface::Bold); FontAsset::Register(U"Time", 36, Typeface::Bold); // 背景色を設定 Scene::SetBackground(ColorF(Palette::Black)); // シーンと遷移時の色を設定 MyApp manager; manager .add<Game>(State::Game) .setFadeColor(ColorF(1.0)); while (System::Update()) { if (!manager.update()) { break; } } }
###補足
OpenSiv3D v0.4.2を使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/19 10:37