Форум сайта python.su
Создать корабль который может двигаться влево, вправо и вверх,вниз.
Alien_Invasion
import sys import pygame from settings import Settings from ship import Ship class AlienInvasion: def __init__(self): pygame.init() self.settings = Settings() self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height)) pygame.display.set_caption("Alien Invasion") self.ship = Ship(self) self.bg_color = (0, 0, 255) def run_game(self): while True: self._check_events() self.ship.update() self._update_screen() def _check_events(self): for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: self._check_keydown_events(event) elif event.type == pygame.KEYUP: self._check_keyup_events(event) def _check_keydown_events(self,event): if event.key == pygame.K_RIGHT: self.ship.moving_right = True elif event.key == pygame.K_LEFT: self.ship.moving_left = True elif event.key == pygame.K_UP: self.ship.moving_up = True elif event.key == pygame.K_DOWN: self.ship.moving_down = True elif event.key == pygame.K_q: sys.exit() def _check_keyup_events(self, event): if event.key == pygame.K_RIGHT: self.ship.moving_right = False elif event.key == pygame.K_LEFT: self.ship.moving_left = False elif event.key == pygame.K_UP: self.ship.moving_up = False elif event.key == pygame.K_DOWN: self.ship.moving_down = False def _update_screen(self): self.screen.fill(self.settings.bg_color) self.ship.blitme() pygame.display.flip() if __name__ == '__main__': ai = AlienInvasion() ai.run_game()
class Settings(): def __init__(self): self.screen_width = 1200 self.screen_height = 800 self.bg_color = (0, 0, 255) self.ship_speed = 1.5
import pygame class Ship(): def __init__ (self,ai_game): self.screen = ai_game.screen self.settings = ai_game.settings self.screen_rect = ai_game.screen.get_rect() self.image = pygame.image.load('images/ship.bmp') self.rect = self.image.get_rect() self.rect.midbottom = self.screen_rect.midbottom self.x = float(self.rect.x) self.moving_right = False self.moving_left = False self.moving_up = False self.moving_down = False def update(self): if self.moving_right and self.rect.right < self.screen_rect.right: self.x += self.settings.ship_speed if self.moving_left and self.rect.left > 0: self.x -= self.settings.ship_speed self.rect.x = self.x def blitme(self): self.screen.blit(self.image, self.rect)
Отредактировано kekcuk999@gmail.com (Дек. 7, 2022 18:05:18)
Прикреплённый файлы:
ship.bmp (50,8 KБ)
Офлайн
Офлайн
С отступами понятно, а вот как сделать,чтобы корабль двигался вверх и вниз. Не получается у меня по всякому пробовал.
Офлайн
Скачай уже готовую игру и смотри там, как там сделано. Эта игра даётся в книге, которую читали тысячи человек, и несколько тысяч из них её делали, а сотни из них потом ещё и выкладывали её в общий доступ в полностью рабочем виде.
Отредактировано py.user.next (Дек. 8, 2022 21:24:28)
Офлайн