【问题标题】:Image won't stop rotating in pygame图像不会在pygame中停止旋转
【发布时间】:2014-07-13 19:33:41
【问题描述】:

我有这一段代码(类似于上一段代码)。它应该只是向左扫过 50 度,然后停止并向右扫过 100 度,然后停止并向左扫过 100 度,依此类推。唯一的问题是它停在左边,向右走,然后继续向右走,即使我在那里停下来防止这种情况发生。

                try:
                    screen.blit(Turrets[1], (TurretCoords[1]))
                    if Rotation == 1:
                        print(TurretRotation[1])
                        print(Rotation)
                        TurretRotation[1] = TurretRotation[1] - 1
                        Turrets[1] = pygame.transform.rotozoom(Turret, TurretRotation[1], 1)
                        if TurretRotation[1] == -50:
                            Rotation = -1
                    else:
                        print(TurretRotation[1])
                        print(Rotation)
                        TurretRotation[1] = TurretRotation[1] + 1
                        Turrets[1] = pygame.transform.rotozoom(Turret, TurretRotation[1], 1)
                        if TurretRotation[1] == 50:
                            Rotation = 1

是的,我知道,我应该将变量更改为大写字母,但我还没有解决。 这是我从控制台得到的输出。

-1 = Rotate
1 = TurretRotation[1]
-1
2
-1
3
-1
4
-1
5
-1
6
-1
7
-1
8
-1
9
-1
10
-1
11
-1
12
-1
13
-1
14
-1
15
-1
16
-1
17
-1
18
-1
19
-1
20
-1
21
-1
22
-1
23
-1
24
-1
25
-1
26
-1
27
-1
28
-1
29
-1
30
-1
31
-1
32
-1
33
-1
34
-1
35
-1
36
-1
37
-1
38
-1
39
-1
40
-1
41
1
40
1
39
1
38
1
37
1
36
1
35
1
34
1
33
1
32
1
31
1
30
1
29
1
28
1
27
1
26
1
25
1
24
1
23
1
22
1
21
1
20
1
19
1
18
1
17
1
16
1
15
1
14
1
13
1
12
1
11
1
10
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
1
-1
1
-2
1
-3
1
-4
1
-5
1
-6
1
-7
1
-8
1
-9
1
-10
1
-11
1
-12
1
-13
1
-14
1
-15
1
-16
1
-17
1
-18
1
-19
1
-20
1
-21
1
-22
1
-23
1
-24
1
-25
1
-26
1
-27
1
-28
1
-29
1
-30
1
-31
1
-32
1
-33
1
-34
1
-35
1
-36
1
-37
1
-38
1
-39
1
-40
1
-41
1
-42
1
-43
1
-44
1
-45
1
-46
1
-47
1
-48
1
-49
1
-50
1
-51
1
-52
1
-53
1
-54
1
-55
1
-56
1
-57
1
-58
1
-59
1
-60
1
-61
1
-62
1
-63
1
-64
1
-65
1
-66
1
-67
1
-68
1
-69
1
-70
1
-71
1
-72
1
-73
1
-74
1
-75
1
-76
1
-77
1
-78
1
-79
1
-80
1
-81
1
-82
1
-83
1
-84
1

【问题讨论】:

  • 最好print(TurretRotation[1], Rotation) 将两个变量放在一行中。甚至print('%4d %4d % (TurretRotation[1], Rotation) ) 以获得更好的格式结果。
  • TurretRotation 更改 1...41 然后 41...-84 。可能在执行if TurretRotation[1] ... 之前出现了一些问题,所以它没有改变方向,但是try 发现了这个问题并且你没有出错。

标签: image python-3.x pygame python-3.2


【解决方案1】:

我无法运行它,所以我只能建议 - 我看到你有 print - 所以看看变量发生了什么。也许其中一个在不同的地方被改变了。

但您可以这样做 - 使用 <=>= - 它应该会有所帮助。

if TurretRotation[1] >= 50:

if TurretRotation[1] <= -50:

【讨论】:

  • 谢谢。如果你愿意,我可以给你完整的代码让你运行它。
  • 先试试你的技巧来发现问题:)
  • 我无法让它工作。我添加了 IDLE 窗口(或 CMD 或终端)的输出。轮换数最终变得如此之大,以至于游戏完全崩溃。
  • 所以最好使用&gt;=&lt;= 进行检查,然后使用==。如果你得到-70 然后-70 &lt;= -50 它应该改变方向但-70 == -50 不会改变它。
  • 我用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多