Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 7, 2022 16:58:34

kekcuk999@gmail.com
Зарегистрирован: 2022-12-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ДОРАБОТАТЬ КОД

Создать корабль который может двигаться влево, вправо и вверх,вниз.


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)

Отредактировано kekcuk999@gmail.com (Дек. 7, 2022 18:05:18)

Прикреплённый файлы:
attachment ship.bmp (50,8 KБ)

Офлайн

#2 Дек. 7, 2022 21:51:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

ДОРАБОТАТЬ КОД

Поправил тут отступы.



Прикреплённый файлы:
attachment alien_invasion.tar.gz (8,4 KБ)

Офлайн

#3 Дек. 8, 2022 17:09:50

kekcuk999@gmail.com
Зарегистрирован: 2022-12-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ДОРАБОТАТЬ КОД

С отступами понятно, а вот как сделать,чтобы корабль двигался вверх и вниз. Не получается у меня по всякому пробовал.

Офлайн

#4 Дек. 8, 2022 21:12:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

ДОРАБОТАТЬ КОД

Скачай уже готовую игру и смотри там, как там сделано. Эта игра даётся в книге, которую читали тысячи человек, и несколько тысяч из них её делали, а сотни из них потом ещё и выкладывали её в общий доступ в полностью рабочем виде.



Отредактировано py.user.next (Дек. 8, 2022 21:24:28)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version