Я разрабатывал игру типа Shoot'em up для своего собственного развлечения в Pygame, и на полпути я столкнулся с некоторыми сомнениями, создавая основные движения игрока,
«Dash» и «Switch» не работают должным образом.
...
def switch(self):
if self.offensive_stance() == True:
self.defensive_stance() == False
if self.defensive_stance() == True:
self.offensive_stance() == False
switch_stance = cycle([self.offensive_stance(),
self.defensive_stance()])
next(switch_stance)
# switch () при нажатии LSHIFT работает правильно под классом Player
def dash(self, cooldown=200):
self.last_dash = pygame.time.get_ticks()
self.cooldown = cooldown
def dash_properties(self):
now = pygame.ticks.get_ticks()
if self.last_dash - now >= cooldown:
self.last_dash= now
self.rect.x -= self.speedx * 2
self.rect.y -= self.speedy * 2
...
Я ожидаю, что эти 2 результата для обоих объектов.
Тире (Увеличение скорости по осям x и y в течение 1 с, а затем перезарядка) - Не удается создать его из-за недостатка опыта.
Switch (цикл между 2 func, Offensive и Defensive) - Невозможно правильно создать переключатель с LSHIFT, defensive_stance активируется только при нажатии LSHIFT