系列文章目录

第一章:武装飞船

01:创建Pygame窗口以及响应用户输入
02:创建设置类Setting()

一、前期准备

1.语言版本

Python3.9.0

2.编译器

Pycharm2022

3.下载Pygame

点击下方链接查看B站下载教程

如何在 Windows 给 Python 安装 Pygame 模块(含Pycharm安装模块方法)

1、点击文件后找到设置并点击

2、找到项目:下的Python解释器并点击

3、点击+号搜索pygame并安装软件包

二、代码及演示

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

创建文件:alien_invasion.py

点击查看代码
#渗透小红帽python的学习之路
#外星人入侵小游戏
#创建pygame窗口以及响应用户输入 import sys # 模块sys用来退出游戏
import pygame def run_game():
pygame.init() #初始化屏屏幕对象 screen = pygame.display.set_mode((1200, 800))#创建显示窗口
pygame.display.set_caption("Alien Invasion")
bg_color = (230, 230, 230)#设置窗口背景为灰色 #开始游戏主循环
while True:
for event in pygame.event.get():#监听键盘和鼠标事件
if event.type == pygame.QUIT:
sys.exit()
screen.fill(bg_color)#每次循环都会重绘屏幕
pygame.display.flip()#让最近绘制的屏幕可见 run_game()

2.创建设置类Setting()

将关于小游戏的所有设置都存储在设置类中,方便修改!!!

A.修改文件:alien_invasion.py

点击查看代码
import sys

# 模块sys用来退出游戏
import pygame
from settings import Setting
#导入刚创建的设置类 def run_game():
pygame.init() #初始化屏屏幕对象
ai_settings = Setting()
# 创建Setting类的实例,并存储在ai_settings变量中 screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))#创建显示窗口
pygame.display.set_caption("Alien Invasion")
#开始游戏主循环 while True:
for event in pygame.event.get():#监听键盘和鼠标事件
if event.type == pygame.QUIT:
sys.exit()
screen.fill(ai_settings.bg_color)#每次循环都会重绘屏幕
pygame.display.flip()#让最近绘制的屏幕可见 run_game()

B.在与文件:alien_invasion.py同一文件夹下创建

文件:settings.py

点击查看代码
#渗透小红帽python的学习之路
#外星人入侵小游戏
#创建设置类Setting()
#存储外星人入侵小游戏的所有设置的类 class Setting():
def __init__(self): #__init__ 注意是两个短下划线
# 屏幕设置
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230, 230, 230)

3.运行效果

三、学习笔记

1.pygame.init() 初始化屏屏幕对象。

2.screen = pygame.display.set_mode((1200, 800))创建一个名为screen的窗口 ,对象screen是一个表面。在Pygame中,surface是屏幕的一部分,用于显示游戏元素。

3.display.set_mode返回surface是游戏窗口。

4.pygame.event.get()使用方法监听所有键盘和鼠标事件,促使for循环的进行。

5.pygame.QUIT和sys.exit()当玩家点击窗口的关闭按钮时,将检测pygame.QUIT事件,则调用sys.exit()来退出游戏。

6.pygame.display.flip()每次执行while循环时都会绘制一个空屏幕,并擦去旧屏幕,使得新绘制的屏幕可见。这样可以实现不断更新屏幕显示元素的新位置。

7.将关于小游戏的所有设置都存储在设置类中,方便修改!!!


四、补充知识

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

调用方法fill()用这种背景色填充屏幕。方法fill()用于处理surface,只接受一个实参:一种颜色。

2022-08-18 20:05:58 星期四

有什么不懂的地方在评论区留言哦!希望我的文章能对你有所帮助,如果喜欢我的文章,请点赞收藏并关注!你的认可是对我创作最大的鼓励!

Python小游戏——外星人入侵(保姆级教程)第一章 01创建Pygame窗口 02创建设置类Setting()的更多相关文章

  1. Python小游戏——外星人入侵(保姆级教程)第一章 07调整飞船速度 08限制飞船活动范围

    系列文章目录 第一章:武装飞船 07调整飞船速度 08限制飞船活动范围 一.代码及演示 1.修改settings 修改文件:settings.py 点击查看代码 #渗透小红帽python的学习之路 # ...

  2. Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动

    系列文章目录 第一章:武装飞船 06:让飞船移动 一.驾驶飞船 下面来让玩家能够左右移动飞船.我们将编写代码,在用户按左或右箭头键时做出响应.我们将首先专注于向右移动,再使用同样的原理来控制向左移动. ...

  3. Python小游戏——外星人入侵(保姆级教程)第一章 05重构模块game_functions

    系列文章目录 第一章:武装飞船 05:重构:模块game_functions 一.重构 在大型项目中,经常需要在添加新代码前重构既有代码.重构旨在简化既有代码的结构,使其更容易扩展.在本节中,我们将创 ...

  4. Python小游戏——外星人入侵(保姆级教程)第一章 03设置飞船图片 04创建Ship类

    系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类--管理飞船行为的类 一.设置飞船图片 1.注意事项 A.将图片设置为位图bmp格式最简单,因为pygame默认加载位图 B.飞 ...

  5. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  6. RocketMQ保姆级教程

    大家好,我是三友~~ 上周花了一点时间从头到尾.从无到有地搭建了一套RocketMQ的环境,觉得还挺easy的,所以就写篇文章分享给大家. 整篇文章可以大致分为三个部分,第一部分属于一些核心概念和工作 ...

  7. 自建本地服务器,自建Web服务器——保姆级教程!

    搭建本地服务器,Web服务器--保姆级教程! 本文首发于https://blog.chens.life/How-to-build-your-own-server.html. 先上图!大致思路就是如此. ...

  8. Python小游戏、小程序

    python 小游戏之摇骰子猜大小 python 实现一个双色球生成程序 python-循环与判断练习题

  9. Eclipse for C/C++ 开发环境部署保姆级教程

    Eclipse for C/C++ 开发环境部署保姆级教程 工欲善其事,必先利其器. 对开发人员来说,顺手的开发工具必定事半功倍.自学编程的小白不知道该选择那个开发工具,Eclipse作为一个功能强大 ...

随机推荐

  1. dotnet 在 linux 上构建问题(RID 的问题)

    个人理解 一方面 /etc/os-release 中定义的的 ID VERSION_ID 是会与源代码中定义 RID 的相对应,如果不对应,就会报错 The specified RuntimeIden ...

  2. 4种方法教你如何查看java对象所占内存大小

    摘要:本文讲述4种查看java对象所占内存大小的方法 本文分享自华为云社区<查看java对象所占内存大小>,作者:xiewenci. 计算java对象所占内存大小 1.使用jdk8自带AP ...

  3. web文本划线的极简实现

    开篇 文本划线是目前逐渐流行的一个功能,不管你是小说阅读网站,还是卖教程的的网站,一般都会有记笔记或者评论的功能,传统的做法都是在文章底部加一个评论区,优点是简单,统一,缺点是不方便对文章的某一段或一 ...

  4. tail -f 、tail -F、tailf的区别

    三者经常在工作中会使用到,以下是三条命令的区别,帮忙大家理解:1.tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止,但是不是断开. 2 ...

  5. STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  6. Codeforces Round #780 (Div. 3)

    A. Vasya and Coins 题目链接 题目大意 Vasya 有 a 个 1-burle coin,有 b 个 2-burle coin,问他不能通过不找钱支付的价格的最小值. 思路 如果 a ...

  7. 最著名的著名的比特币BTC钱包地址-中本聪的钱包

    最著名的著名的比特币BTC钱包地址-中本聪的钱包1.比特币创始人中本聪 1PTFYUG6nCzRrByoRfGT5kefUNuZjNF84o这个地址还是比特币的创世地址,比特币从未移动过,其中的50币 ...

  8. centos更改mac

    centos 6更改mac vim /etc/udev/rules.d/70-persistent-net.rules

  9. Trie树模板1字符串统计

    Trie树模板1字符串统计 我们首先来了解一下字典树,首先看一下一张字典树的图片 字典树就是一个可以高效存储.查找字符串的树,比如上面这个字典树就是存储abc,acb,bac的字典树. 1.插入操作( ...

  10. 新建 Microsoft Office Word 文档 来源:牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28886/1015 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...