파이썬 프로그래밍의 외계인 침입 (1)

3418 단어 Python
파이썬을 배운 뒤 실전을 하는 것이 가장 좋은 숙련법으로, 최근 외계인의 작은 게임 침입 프로그램을 배워 공유해 여러분과 교류하고 있다.저는 몇 차례에 걸쳐 프로그램을 공유할 것입니다. 오늘 먼저 게임의 메인 프로그램을 공유합니다. 게임의 메인 프로그램에서 다른 블록과 함수를 호출하여 게임의 설정을 완성할 것입니다. 메인 프로그램은 게임의 외관으로 볼 수 있습니다. 위에 몇 개의 단추가 있는데 한 개의 단추를 누르지 않으면 하나의 기능을 수행할 수 있습니다. 또는 여러분들이 Fluent 등 일부 상용 소프트웨어를 사용한 적이 있죠. 메인 프로그램의 언어는 전체 인터페이스에 해당합니다.모든 말은 명령과 맞먹는다. 우리의 목표는 이 명령이 어떤 기능을 실현할 수 있는지, 이 명령이 어떻게 실현될 수 있는지에 대해, 우리는 뒤이어 몇 번 동안 그것을 분명히 하는 것이다.먼저 프로그램의 최전방에서 모듈과 클래스를 가져와야만 나중에 사용할 수 있다.
import pygame
from pygame.sprite import Group

from settings import Settings
from game_stats import GameStats
from scoreboard import Scoreboard
from button import Button
from ship import Ship
import game_functions as gf

다음 정의는 게임을 실행하는 함수rungame (), 이 함수에서 다른 클래스와 모듈ai 호출Settings = Settings ()는 Settings의 실례이다. Settings는 이 게임 화면이 초기화된 데이터를 저장한다. 예를 들어 게임 화면이 얼마나 크고 총알이 얼마나 많으며 외계인 속도 등이다.screen = pygame.display.set_mode((ai settings.screen width, ai settings.screen height) 및pygame.display.set_caption("Alien Invasion")은 게임 인터페이스와 게임 이름을 생성합니다.play_button = Button(ai settings, screen, "play)은 Button의 인스턴스입니다."play"버튼;stats = Game Stats(ai settings)는 게임 상태(시작 여부)의 매개 변수가 저장된 Game Stats의 실례이며, sb = Scoreboard(ai settings,screen,stats)는 Scoreboard의 한 예로 득점 정보를 보여주는 데이터가 저장되어 있으며, ship = Ship(ai settings,screen), bullets = Group(), aliens = Group(),gf.creatings settings, fleenshings, alienshiens,주석에 참고할 만한 것이 있다.게임은 변화하는 과정이기 때문에 실시간 탐지와 변화 관련 데이터가 필요합니다.while True에서 이 기능을 순환적으로 수행합니다. gf.check_이벤트(ai settings,screen,stats,sb,play button,ship,aliens,bullets)는 화면, 게임 상태, 마우스, 외계인 등 상황에 따라 상응하는 변화를 측정한다. 예를 들어 키보드에 오른쪽 화살표를 입력했을 때 비행기가 오른쪽으로 날아가는 등이다.비행기 위치, 총알 수량 위치, 외계인 위치ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
이렇게 단추가 달린 블랙박스는 기본적으로 완성되었는데 블랙박스 안에 무엇이 숨겨져 있는지 우리가 더욱 탐구해야 한다.
다음은 블랙박스 전체 프로그램alieninvasion.py
import pygame
from pygame.sprite import Group

from settings import Settings
from game_stats import GameStats
from scoreboard import Scoreboard
from button import Button
from ship import Ship
import game_functions as gf

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

    #  play  
    play_button = Button(ai_settings, screen, "play")

    #                       
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)
    #      
    ship = Ship(ai_settings, screen)
    #             
    bullets = Group()
    #         
    aliens = Group()

    #      
    gf.creat_fleet(ai_settings, screen, ship, aliens)

    #       
    while True:
        #         
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets)

        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets)
            gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets)
        #          
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)

run_game()

좋은 웹페이지 즐겨찾기