teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

誤字

2020/05/10 17:31

投稿

cccfffjjj
cccfffjjj

スコア3

title CHANGED
File without changes
body CHANGED
@@ -8,11 +8,11 @@
8
8
 
9
9
 
10
10
  ### これを使用したいプロジェクトについて
11
- 現実時間と連動したゲームを作成したいと考えているので、『経過時間(ms)をiとおき、要素数100の配列のBox[]があるとした場合』
12
- 今のiの値が40の場合は配列Box[40]を指定し、1ステップ後(1回Updateした後)のiが60だとしたら、Box[41]ではなくBox[60]を指定したいです
13
- 現在作成しているプロジェクトがこのような仕様になっており、ほぼ同じ周期でUpdateされることを前提としているため、4ステップ目の更新のみ340msかかってしまうとコーディングが難しいです
14
- 加えて、void Strt()とvoid Updateの両方でBox[i]を使うため、「初めてUpdateしたときに1秒待ってから処理を始める」は解決策としてはちょっと違うかもしれません、、、
15
11
 
12
+ 現実時間と連動したゲームを制作しており、「ゲーム開始からの経過時間(ms)をiとした場合」に、ある経過時間になったとき特定の動作をするようなものです(例:開始から100msたったら(i = 100)90度回転、230ms(i = 230)たったら10移動)
13
+ 1回Updateをするのに20msかかるため、例えばi = 20でUpdateをすると次のiは40となります。この際、例えば30msのときに特定の動作をするようになっていると、21~39はiに入らないため(i = 20 → i = 40)この命令を飛ばしてしまいます。
14
+ そのため、動作をさせるかどうかの判断を「if i == 30」ではなく「if i == 30 || abs(i - 30 ) <= 10」としています。こうすることで、iが40であっても30で実行するはずだった命令を行えるようにしています。しかし、このコーディングは、updateの間隔が一定であるという前提で組んでいるため4ステップ目の更新のみ340msかかってしまうと、行いたい挙動をプログラムが行ってくれなくなってしまいます
15
+ 加えて、上記のような処理は、void Start、void Updateのどちらにも用いたいため、「1回目のUpdateで1秒待ってから経過時間を測る」ような処理は、うまくいかない可能性があります、、、
16
16
 
17
17
  ### 発生している問題・エラーメッセージ
18
18
 

2

誤字

2020/05/10 17:31

投稿

cccfffjjj
cccfffjjj

スコア3

title CHANGED
File without changes
body CHANGED
@@ -4,11 +4,16 @@
4
4
  つまり1ステップごとに『20 → 40 → 60 → 80 → 100 → 120...』と増加していくはずなのですが、4ステップ目の更新のみ340msかかってしまいます
5
5
  『20 → 40 → 60 → 400 → 420 → 440...』といった具合にです
6
6
  4ステップ目だけ複雑な命令を出しているわけでもないのに、340msもかかってしまう理由がわかりません。
7
- また、現実時間と連動したゲームを作成したいと考えているので、『経過時間(ms)をiとおき、要素数100の配列のBox[]があるとした場合』
8
- 今のiの値が40の場合は配列Box[40]を指定し、1ステップ後(1回Updateした後)のiが60だとしたら、Box[41]ではなくBox[60]を指定したいです
9
- 現在作成しているプロジェクトが、上記の仕様になっており、同じ周期でUpdateされることを前提としているため、4ステップ目の更新のみ340msかかってしまい、コーディングが難しいです
10
7
  これが起こる原因並びにその解決策、または1ステップごとに同じ経過時間を計測できる方法を探しています
11
8
 
9
+
10
+ ### これを使用したいプロジェクトについて
11
+ 現実時間と連動したゲームを作成したいと考えているので、『経過時間(ms)をiとおき、要素数100の配列のBox[]があるとした場合』
12
+ 今のiの値が40の場合は配列Box[40]を指定し、1ステップ後(1回Updateした後)のiが60だとしたら、Box[41]ではなくBox[60]を指定したいです
13
+ 現在作成しているプロジェクトがこのような仕様になっており、ほぼ同じ周期でUpdateされることを前提としているため、4ステップ目の更新のみ340msかかってしまうとコーディングが難しいです
14
+ 加えて、void Strt()とvoid Updateの両方でBox[i]を使うため、「初めてUpdateしたときに1秒待ってから処理を始める」は解決策としてはちょっと違うかもしれません、、、
15
+
16
+
12
17
  ### 発生している問題・エラーメッセージ
13
18
 
14
19
 

1

誤字

2020/05/10 17:02

投稿

cccfffjjj
cccfffjjj

スコア3

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,9 @@
4
4
  つまり1ステップごとに『20 → 40 → 60 → 80 → 100 → 120...』と増加していくはずなのですが、4ステップ目の更新のみ340msかかってしまいます
5
5
  『20 → 40 → 60 → 400 → 420 → 440...』といった具合にです
6
6
  4ステップ目だけ複雑な命令を出しているわけでもないのに、340msもかかってしまう理由がわかりません。
7
-
7
+ また、現実時間と連動したゲームを作成したいと考えているので、『経過時間(ms)をiとおき、要素数100の配列のBox[]があるとした場合』
8
+ 今のiの値が40の場合は配列Box[40]を指定し、1ステップ後(1回Updateした後)のiが60だとしたら、Box[41]ではなくBox[60]を指定したいです
9
+ 現在作成しているプロジェクトが、上記の仕様になっており、同じ周期でUpdateされることを前提としているため、4ステップ目の更新のみ340msかかってしまい、コーディングが難しいです
8
10
  これが起こる原因並びにその解決策、または1ステップごとに同じ経過時間を計測できる方法を探しています
9
11
 
10
12
  ### 発生している問題・エラーメッセージ