python_외계인 침입 프로젝트, 비행선 이동
2996 단어 경험문을 공유하다
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)#
정말 처음으로 프로그램을 썼는데 창이 만들어지면서 기능의 재구성에 이르기까지 사고방식이 점점 뚜렷해졌다.
이것은 아마도 개발의 즐거움, 창조의 즐거움일 것이다.
하지만 내가 잘 알지 못하는 것이 하나 있다. 바로 사건의 감청이다.이런 추정은 미래에 공략해야 할 난점이다.