《Python编程:从入门到实践》:项目1 外星人入侵

BBigSun 评论56阅读模式

康复训练,仅供参考
2018 年第一次接触 Python,使用这本《Python编程:从入门到实践》自学了一个暑假,从此打开编程世界的大门。第一次的做的项目就是这个“外星人入侵”的小游戏。

1 整体规划

1.1 游戏描述

在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。文章源自十年又十年-https://www.bbigsun.com/99.html

1.2 开发步骤

将游戏划分为 3 个模块,按照顺序依次开发:文章源自十年又十年-https://www.bbigsun.com/99.html

  1. 武装飞船模块
  2. 外星人模块
  3. 记分模块

1.3 搭建虚拟环境

  1. 安装 Python
  2. 安装 virtualenv: pip install virtualenv
  3. 创建虚拟环境:virtualenv alien_invasion
  4. 使用虚拟环境:.\alien_invasion\Scripts\activate

1.4 安装 pygame 模块

pip install pygame

2 武装飞船模块

2.1 项目初始化

目录结构:文章源自十年又十年-https://www.bbigsun.com/99.html

alien_invasion
├─images
│  ├─rocket.bmp
│  ├─ship.bmp
│  └─ufo.bmp
├─ship.py
├─main.py
├─settings.py
└─ship.py

2.1.1 Settings 类

settings.py文章源自十年又十年-https://www.bbigsun.com/99.html

class Settings():
    def __init__(self):
        """游戏初始化设置"""
        # 屏幕设置
        self.screen_width = 1200
        self.screen_height = 800
        self.title = "Alien Invasion"
        self.bg_color = (230, 230, 230)

2.1.2 主入口

main.py文章源自十年又十年-https://www.bbigsun.com/99.html

import sys, pygame
from settings import Settings

def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    game_settings = Settings()
    screen = pygame.display.set_mode((game_settings.screen_width, game_settings.screen_height))
    pygame.display.set_caption(game_settings.title)

    # 开始游戏主循环
    while True:
        # 监视键盘和鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        # 每次循环都重新绘制屏幕
        screen.fill(game_settings.bg_color)

        # 让最近绘制的屏幕可见
        pygame.display.flip()

if __name__ == '__main__':
    run_game()

2.2 开发飞船模块

2.2.1 下载素材

创建 images 文件夹,可以从这个网站 https://pixabay.com/ 下载合适的素材。
这里我下载了三个素材,为 rocket.bmp, ufo.bmp, ship.bmp文章源自十年又十年-https://www.bbigsun.com/99.html

2.2.2

外星人文章源自十年又十年-https://www.bbigsun.com/99.html

3 外星人模块

4 记分模块

文章源自十年又十年-https://www.bbigsun.com/99.html文章源自十年又十年-https://www.bbigsun.com/99.html

纸上得来终觉浅,绝知此事要躬行。

weinxin
17688689121
我的微信
微信扫一扫
Python最后更新:2024-5-11
BBigSun
  • 本文由 BBigSun 发表于 2023年 1月 3日 17:51:26
  • 转载请务必保留本文链接:https://www.bbigsun.com/99.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定