回答編集履歴
6
f
test
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
root.after で渡している時間(delay_ms) が 0 になって描画が行われてないのではないでしょうか。
|
1
|
+
root.after で渡している時間(delay_ms) が 0 になって描画が行われてないのではないでしょうか。delay_ms が負数になることも考慮して、例えば、delay_ms が 0以下なら 1 にするといった処理を入れてはどうでしょう。
|
2
|
-
delay_ms が負数になることも考慮して、0以下なら 1ms にするといった処理を入れてはどうでしょう。
|
3
|
-
自分の環境ではそれで回るようになりました。
|
2
|
+
(自分の環境ではそれで回るようになりました。)
|
4
3
|
(最初の回答から修正)
|
5
f
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
root.after で渡している時間(delay_ms) が 0 になって描画が行われてないのではないでしょうか。
|
2
2
|
delay_ms が負数になることも考慮して、0以下なら 1ms にするといった処理を入れてはどうでしょう。
|
3
|
-
|
3
|
+
自分の環境ではそれで回るようになりました。
|
4
4
|
(最初の回答から修正)
|
4
見直し
test
CHANGED
@@ -1,10 +1,4 @@
|
|
1
|
-
|
1
|
+
root.after で渡している時間(delay_ms) が 0 になって描画が行われてないのではないでしょうか。
|
2
|
-
これが原因で描画がスキップされているようにみえます。
|
3
|
-
|
2
|
+
delay_ms が負数になることも考慮して、0以下なら 1ms にするといった処理を入れてはどうでしょう。
|
4
|
-
```
|
5
|
-
delay_ms = int((next_time - now).total_seconds() * 1000)
|
6
|
-
|
3
|
+
# 自分の環境ではそれで回るようになりました。
|
7
|
-
|
4
|
+
(最初の回答から修正)
|
8
|
-
```
|
9
|
-
|
10
|
-
|
3
fix
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
int にキャストしているので
|
1
|
+
total_seconds() に対して int にキャストしているので、delay_ms は回転処理の負荷が無くても 20でなく 0 になります。
|
2
|
-
|
2
|
+
これが原因で描画がスキップされているようにみえます。
|
3
3
|
20ms に間に合わない場合も考慮して、以下のようにしてみてはどうでしょう。
|
4
4
|
```
|
5
5
|
delay_ms = int((next_time - now).total_seconds() * 1000)
|
2
修正
test
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
int
|
1
|
+
int にキャストしているので delay_ms は 0 か負数になります。
|
2
|
+
0 の場合描画が実行されなくなるのがスムーズに回転しないように見える原因だと思います。
|
3
|
+
20ms に間に合わない場合も考慮して、以下のようにしてみてはどうでしょう。
|
2
4
|
```
|
3
|
-
delay_ms = (next_time - now).total_seconds() * 1000
|
5
|
+
delay_ms = int((next_time - now).total_seconds() * 1000)
|
4
6
|
if delay_ms <= 0:
|
5
7
|
delay_ms = 1
|
6
8
|
```
|
7
9
|
|
10
|
+
|
1
fix
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
delay_ms
|
1
|
+
interval が 20ms なので、delay_ms は 0 になる(あるいは、ほぼ無いでしょうが負数になる)ので、press_L, press_R ばかり実行されて、描画が実行されなくなっているようにみえます。int へのキャストをやめてはどうでしょう。
|
2
2
|
```
|
3
3
|
delay_ms = (next_time - now).total_seconds() * 1000
|
4
4
|
if delay_ms <= 0:
|