回答編集履歴

2

追記

2021/06/25 05:32

投稿

fana
fana

スコア11663

test CHANGED
@@ -27,3 +27,63 @@
27
27
 
28
28
 
29
29
  60fps であれば,「1フレーム」の処理が 1/60[s] 以内に終われない場合には,スケジュールは押してしまうわけで.
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ ---
38
+
39
+
40
+
41
+ > マイナスの値が返ってくるがこれは正しいのでしょうか?普通15,14といった値が返ってくることを想定しているのですが
42
+
43
+
44
+
45
+ ```
46
+
47
+ int tookTime = getNowTime() - startCount;
48
+
49
+ int waitTime = count * 1000 / FRAME_RATE - tookTime;
50
+
51
+ ```
52
+
53
+
54
+
55
+ * tookTime とは,ある時刻 startCount からの経過時間.
56
+
57
+ (言い換えれば,startCount を基準時刻(0)とした時刻)
58
+
59
+ * `count * 1000 / FRAME_RATE` とは,count番目のフレームの処理を実施したい時刻.
60
+
61
+ (この時刻も startCount を基準時刻(0)としたもの)
62
+
63
+
64
+
65
+ waitTime とは,この2つの引き算なのだから,
66
+
67
+
68
+
69
+ 「今の時刻は tookTime なんだけど,処理を実施したい時刻になるまでにはどれだけ時間がありますかね」 
70
+
71
+
72
+
73
+ という値だ.
74
+
75
+
76
+
77
+ どれだけ時間があるだろうか? なんてのは,**現在の時刻 tookTime 次第**である.
78
+
79
+ (なのに,それが「15とか14たるべき」という話は一体どこからやってくるのか?)
80
+
81
+
82
+
83
+ 残りは 15[ms] あるかもしれないし,1[ms] しかないかもしれない.
84
+
85
+
86
+
87
+ 時刻 tookTime は「処理を実施したい時刻よりも後の時刻」かもしれない.
88
+
89
+ その場合,当然ながら,waitTimeは負の値になる.

1

微修正

2021/06/25 05:32

投稿

fana
fana

スコア11663

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  要は,「ある処理を時刻tのタイミングで実施したい」として,それが実際に可能かどうかは動作状況次第だということ.
24
24
 
25
- その処理を実施することが可能となったときには,既に時刻tとは遥か過去になっているかもしれない.
25
+ その処理を実施することが可能となったときには,既に時刻tとは遥か過去になっているかもしれない.
26
26
 
27
27
 
28
28