python_외계인 침입 프로젝트, 비행선 이동

이것은python 연습을 배우는 첫 번째 작은 프로젝트입니다. 여러분과 많이 교류하고 싶으니 잘 부탁드립니다.
1、메인 프로그램 먼저 보기:alieninvasion.py
import sys
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf



#  py 
def run_game():
    #  pygame、 
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))   
    pygame.display.set_caption("Alien Invasion")

    #  
    ship = Ship(screen)

    #  
    while True:

        gf.check_events(ship)
        ship.update() 

        #  
        gf.update_screen(ai_settings, screen, ship)

        #  
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()


run_game()

2. 비행선류의 창설에 비행선과 관련된 속성과 방법이 저장되어 있다.py
import pygame

class Ship():
    def __init__(self,screen):
        ''' '''
        self.screen = screen

        #  
        self.image = pygame.image.load('images/ship.bmp')
        self.rect = self.image.get_rect()  
        self.screen_rect = screen.get_rect()

        #  
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom

        #  
        self.moving_right = False
        self.moving_left = False

    def update(self):
        ''' '''
        if self.moving_right:
            self.rect.centerx += 1
        if self.moving_left:
            self.rect.centerx += 1

    def blitme(self):
        """ """
        self.screen.blit(self.image, self.rect)

3、모든 이벤트가 하나의 클래스에 봉인됨:gamefunctions.py
import sys
import pygame


def check_events(ship): 
    """ """
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:  
            if event.key == pygame.K_RIGHT:
                ship.moving_right = True
            elif event.key ==pygame.K_LEFT:
                ship.moving_left = True

        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_RIGHT:
                ship.moving_right = False
            elif event.key == pygame.K_LEFT:
                ship.moving_left = False

def update_screen(ai_settings, screen, ship):
    """ , """
    screen.fill(ai_settings.bg_color)
    ship.blitme()

    #  
    pygame.display.flip()

4, 설정 클래스, 창 크기와 색상 등 설정을settings에 봉인합니다.py 클래스 중
class Settings():
    """ 《 》 """
    def __init__(self):
        ''' '''
        #  
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (70, 149, 222)#  

정말 처음으로 프로그램을 썼는데 창이 만들어지면서 기능의 재구성에 이르기까지 사고방식이 점점 뚜렷해졌다.
이것은 아마도 개발의 즐거움, 창조의 즐거움일 것이다.
하지만 내가 잘 알지 못하는 것이 하나 있다. 바로 사건의 감청이다.이런 추정은 미래에 공략해야 할 난점이다.

좋은 웹페이지 즐겨찾기