Найти - Пользователи
Полная версия: ДОРАБОТАТЬ КОД
Начало » Python для новичков » ДОРАБОТАТЬ КОД
1
kekcuk999@gmail.com
Создать корабль который может двигаться влево, вправо и вверх,вниз.


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()


Settings:

 class Settings():
    def __init__(self):
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (0, 0, 255)
        self.ship_speed = 1.5



Ship:

 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)
py.user.next
Поправил тут отступы.
kekcuk999@gmail.com
С отступами понятно, а вот как сделать,чтобы корабль двигался вверх и вниз. Не получается у меня по всякому пробовал.
py.user.next
Скачай уже готовую игру и смотри там, как там сделано. Эта игра даётся в книге, которую читали тысячи человек, и несколько тысяч из них её делали, а сотни из них потом ещё и выкладывали её в общий доступ в полностью рабочем виде.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB