我做节目,我想让我的蛇在它朝一个方向走,但是当我尝试此代码:如何将度数设置为最大值360?
def move(self):
if pressed_keys[self.ctrls[0]]and self.dire == 0:
self.y -= 10
if pressed_keys[self.ctrls[0]]and self.dire == 90:
self.x -= 10
if pressed_keys[self.ctrls[0]]and self.dire == 180:
self.y += 10
if pressed_keys[self.ctrls[0]]and self.dire == -90:
self.x += 10
def turn_left(self):
self.dire += 90
def turn_right(self):
self.dire -= 90
.
.
.
while 1:
clock.tick(60)
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
if event.type == KEYDOWN and event.key == K_LEFT:
snake.turn_left()
if event.type == KEYDOWN and event.key == K_RIGHT:
snake.turn_right()
pressed_keys = pygame.key.get_pressed()
还有一个问题: 我可以用两次转右箭头键,但我不能再去那个方向了。这是因为我所做的是:我按了箭头两次 - > self.dire - 90 - 90.所以self.dire现在是-180。我可以改变的价值观:我可以改变
if pressed_keys[self.ctrls[0]]and self.dire == 180:
self.y += 10
到
if pressed_keys[self.ctrls[0]]and self.dire == 180 or -180:
self.y += 10
但如果我按右箭头另一四次,我必须再添加值-540等。有谁知道更好的解决方案?或者你可以说self.dire必须在-360和360度之间?
你试过除模('%'运算符)吗? – Pavlus
不,我应该如何使用它? – AV13
它返回除法运算的其余部分,所以'450%360'返回'90' – Pavlus