私はプログラムを作っていると私は私のヘビは、それが向かっているのと同じ方向に行くようにしたいが、私はこのコードをしようとすると:私は二度回すことができる :度を最大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()
は問題があります右矢印キーが、私はもうその方向に行くことはできません。それは私がしたことでした:私は矢印を2回押しました - > self.dire - 90 - 90。だからself.direは-180になりました。私は、値を変更することができます:私は
if pressed_keys[self.ctrls[0]]and self.dire == 180 or -180:
self.y += 10
に
if pressed_keys[self.ctrls[0]]and self.dire == 180:
self.y += 10
を変えることができるが、私は、右矢印に別の4回押した場合、私はそのように上の値-540を追加しなければなりません。誰かがより良い解決策を知っていますか?またはself.direは-360〜360度の間でなければならないと言うことができますか?
モジュロ( '%'演算子)で除算しましたか? – Pavlus
いいえ、どうすれば使用できますか? – AV13
これは、除算演算の残りの部分を返すので、 '450%360'は' 90'を返します。 – Pavlus