• 周三. 4 月 22nd, 2026

物嫩软件资讯网

软件资讯来物嫩

射击小游戏(Python)

admin@wunen

5 月 2, 2025

这个项目是我第一次开发小游戏。由7个文件构成,分别是alian_invasion、alien、bullet、game_functions、game_stats、settings、ship。

项目开始开发前得先安装pygame,这个过程真是一把辛酸泪,整整弄了2天!!!简直不忍回首!!!有空再写一篇安装文章给各位吧。

好了,进入正题,直接给出7个文件的代码吧。



alian_invasion

创建一系列整个游戏要用到的对象和游戏的主循环。

import pygame
from pygame.sprite import Group

from settings import Settings
from game_stats import GameStats
from ship import Ship
import game_functions as gf

def run_game():
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    
    stats = GameStats(ai_settings)
    
    bg_color = (230, 230, 230)
    
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()
    
    gf.create_fleet(ai_settings, screen, ship, aliens)
    while True:
        gf.check_events(ai_settings, screen, ship, bullets)
        
        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, ship, aliens, bullets)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        
        gf.update_screen(ai_settings, screen, ship, aliens, bullets)

run_game()



alien

外星人来啦~这个文件应该放到最后做的。

import pygame
from pygame.sprite import Sprite

class Alien(Sprite):
    def __init__(self, ai_settings, screen):
        super(Alien, self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings

        self.image = pygame.image.load('images/alien.bmp')
        self.rect = self.image.get_rect()
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        self.x = float(self.rect.x)
        
    def check_edges(self):
        screen_rect = self.screen.get_rect()
        if self.rect.right >= screen_rect.right:
            return True
        elif self.rect.left <= 0:
            return True
        
    def update(self):
        self.x += (self.ai_settings.alien_speed_factor *
                        self.ai_settings

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注