質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.68%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

576閲覧

[SDLライブラリ] ミリ秒の整数値からfloat型のミリ秒を取得したい。

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/08/18 12:06

編集2022/08/18 12:29

提示コードですがレンダーバッファー関数とレンダークリアー関数はゲームループの最後と最初に置いています。
利用部のようにかなり大きい値を入れると動くのですが動きがカクカクしてしまいます。デルタタイムの設定が間違えていると思うのですがこれはなぜでしょうか?

知りたいこと

ミリ秒の整数値からfloat型のミリ秒を取得したい。

参考サイト:https://qiita.com/murati111/items/c07fbe7b0175012f549c

コンソール画面
0 0 0 0 1e-06 0 0 0 0 0 0 0 1e-06 0 1e-06 0

利用部

cpp

1 2/*################################################# 3# 更新 4###################################################*/ 5void Ball::Update() 6{ 7 //std::cout<<(float)SDLGame::GetDeltaTime()<<std::endl; 8 printf("%f\n",SDLGame::GetDeltaTime()); 9 10 position.x += SDLGame::GetDeltaTime() * 1000; 11} 12
設定部

cpp

1 2/*################################################# 3# レンダーバッファークリア 4###################################################*/ 5void SDLGame::RenderClear() 6{ 7 prevTime = SDL_GetTicks(); 8 SDL_RenderClear(render); 9} 10 11 12/*################################################# 13# デルタタイムを取得 14###################################################*/ 15float SDLGame::GetDeltaTime() 16{ 17 return deltaTime; 18} 19 20 21/*################################################# 22# レンダーバッファー 23###################################################*/ 24void SDLGame::RenderPresent() 25{ 26 deltaTime = ((float)(SDL_GetTicks() - prevTime)) / ((float)1000.0f); 27 //deltaTime = ((float)(SDL_GetTicks() - 0)); 28 29 SDL_RenderPresent(render); 30} 31

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

episteme

2022/08/18 12:47

> ミリ秒の整数値からfloat型のミリ秒を取得したい。 int から float にキャストするだけじゃなくて?
退会済みユーザー

退会済みユーザー

2022/08/18 12:48

そうすると値が0になってしまので100ミリ秒だったら0.100秒にしてほしいのです。
episteme

2022/08/18 12:51 編集

なんで? intの100をfloatにキャストすれば 100.000 ですよ? 0にはならんですよ?
退会済みユーザー

退会済みユーザー

2022/08/18 13:05

間違えました。すいません。
episteme

2022/08/18 13:40

つまり 解決した んですか?
guest

回答1

0

100ミリ秒だったら0.100秒にしてほしいのです。

msec/1000.0
1000で割ればいいのでは

投稿2022/08/18 14:37

y_waiwai

総合スコア87271

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

2022/08/19 15:20

こちらの回答が複数のユーザーから「過去の低評価」という指摘を受けました。

回答へのコメント

退会済みユーザー

退会済みユーザー

2022/08/19 04:19

以下ようにして実装したのですがなぜか物体の進み具合がガクガクなのですがこれはなぜでしょうか? deltaTime = (float)(SDL_GetTicks64() - prevTime) / 1000.0f; prevTime = SDL_GetTicks64();
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.68%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。