记录第一个 python项目 外星人入侵小游戏

学习目标:提升自己的编程能力## 标题

*> 可谓是一波三折 ,刚开始看的一本电子书 里面是python2.0的内容,我敲着在3系列的编译器试着2.0的代码可谓好不酸爽
那报错 绝了


学习内容:安装Pygame

1. 使用pip安装Python包`(打开命令行窗口输入)

python -m pip install --user pygame

命令行在这里插入图片描述

2. 创建Pygame窗口以及响应用户输入`

import sys
import pygame

from settings import Settings
from ship import Ship

class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()

        self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("alien invasion")
        self.ship = Ship(self)

    def run_game(self):
        # 设置背景色
        self.bg_color = (230, 100, 230)
        # 游戏主循环
        while True:
            # 监视键盘和鼠标事件
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
            self.screen.fill(self.settings.bg_color)
            self.ship.blitme()
            pygame.display.flip()


if __name__ == '__main__':
    ai = AlienInvasion()
    ai.run_game()
  1. 导入了模块sys 和pygame ;
    模块pygame 包含开发游戏所需的功能。玩家退出时,我们将使用模;块sys 来退出游戏。
  2. pygame.init() 初始化背景设置,让Pygame能够正确地工作
  3. 我们导入Settings 类,调用pygame.init() ,再创建一个Settings 实例,并将其存储在变量ai_settings 中。创建屏幕时,使用了ai_settings 的属性screen_width 和screen_height ;接下来填充屏幕时,也使用了ai_settings 来访问背景色;
  4. 导入Ship 类,并在创建屏幕后创建一个名为ship 的Ship 实例。必须在主while 循环前面创建该实例,以免每次循环时都创建一艘飞船。填充背景后,我们调用ship.blitme() 将飞船绘制到屏幕上,确保它出现在背景前面。现在如果运行alien_invasion.py,将看到飞船位于空游戏屏幕底部中央。

小知识

在游戏中几乎可以使用任何类型的图像文件,但使用位图(.bmp)文件最为简单,因为Pygame默认加载位图。虽然可配置Pygame以使用其他文件类型,但有些文件类型要求你在
计算机上安装相应的图像库。大多数图像都为.jpg、.png或.gif格式,但可使用Photoshop、GIMP和Paint等工具将其转换为位图。

**

在Pygame中,颜色是以RGB值指定的。这种颜色由红色、绿色和蓝色值组成,其中每个值的可能取值范围都为0~255。颜色值(255, 0,
0)表示红色,(0, 255, 0)表示绿色,而(0, 0,
255)表示蓝色。通过组合不同的RGB值,可创建1600万种颜色。在颜色值(230, 230,
230)中,红色、蓝色和绿色量相同,它将背景设置为一种浅灰色。


3.创建设置类

  • 下面来编写一个名为settings 的模块,其中包含一个名为Settings 的类,用于将所有设置存储在一个地方,以免在代码中到处添加设置。这样,我们就能传递一个设置对象,而不是众多不同的设置。另外,这让函数调用更简单,且在项目增大时修改游戏的外观更容易:要修改游戏,只需修 settings.py中的一些值,而无需查找散布在文件中的不同设置。
- `class Settings:
    def __init__(self):
        self.screen_width =700
        self.screen_height =600
        self.bg_color = (230,230,230)`
``import pygame
class Ship:
    '''管理飞船的类'''
    def __init__(self,ai_game):
        self.screen =ai_game.screen
        self.screen_rect = ai_game.screen.get_rect()
        #加载飞船图像并获得外接矩形
        self.image = pygame.image.load('images/ship.bmp')
        self.rect = self.image.get_rect()

        #对于每艘新飞船,都将其放在屏幕底部的中央
        self.rect.midbottom = self.screen_rect.midbottom
    def blitme(self):
        '在指定的位置绘制new space ship'
        self.screen.blit(self.image,self.rect)

>LUCKY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值