早起的周日,今日阴天,老爸生日快乐~

开始项目

首先创建一个空的Pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。

1.1.1 创建Pygame窗口以及相应用户输入

首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下:

import pygame

import sys

import pygame

def run_game():

# 初始化游戏并创建一个屏幕对象

pygame.init()

screen = pygame.display.set_mode((1920,1080))

pygame.display.set_caption("Alien Invasion")

# 开始游戏的主循环

while True:

#监视键盘和鼠标事件

for event in pygame.event.get():

if event.type == pygame.QUIT:

sys.exit()

#让最近绘制的屏幕可见

pygame.display.flip()

run_game()

现在运行的话,我们会看到一个空的Pygame窗口。

1.1.2 设置背景色

Pygame默认创建一个黑色屏幕,这太乏味了。下面来将背景设置为另一种颜色:

import pygame

import sys

import pygame

def run_game():

# 初始化游戏并创建一个屏幕对象

pygame.init()

screen = pygame.display.set_mode((1920,1080))

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

让我们再来运行一下:

1.1.3 创建设置类

每次给游戏添加新功能时,通常也将引入一些新设置。下面来编写一个名为settings 的模块,其中包含一个名为Settings 的类,用于将所有设置存储在一个地方,以免在代码中到处添加设置。这样,我们就能传递一个设置对象,而不是众多不同的设置。另外,这让函数调用更简单,且在项目增大时修改游戏的外观更容易:要修改游戏,只需修改settings.py中的一些值,而无需查找散布在文件中的不同设置。

下面是初始设置:

class Settings():

"""存储游戏所有设置"""

def __init__(self):

"""初始化游戏设置"""

#屏幕设置

self.screen_width = 1200

self.screen_height = 800

self.bg_color = (230,230,230)

为创建Settings 实例并使用它来访问设置,将alien_invasion.py修改成下面这样:

import pygame

import sys

import pygame

from settings import Settings

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

# 开始游戏的主循环

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

运行结果:

就到这里吧,准备出去溜~

python大作业外星人入侵_【python3小白上路系列】外星人入侵——开始相关推荐

  1. python大作业爬虫_爬虫大作业

    1.选一个自己感兴趣的主题(所有人不能雷同). 2.用python 编写爬虫程序,从网络上爬取相关主题的数据. 3.对爬了的数据进行文本分析,生成词云. 4.对文本分析结果进行解释说明. 5.写一篇完 ...

  2. python大作业代码_爬虫大作业(示例代码)

    1.选一个自己感兴趣的主题(所有人不能雷同). 每天都有接触各大平台推送的新闻,了解到了校园外的大小事.故此,对新浪新闻标题的关键字的爬取,看看最近发生的实时,也想比较下标题党还是和实际内容的差异. ...

  3. python大作业代码_大二期末python大作业有效代码不低于5000行是什么水平?

    6月30日更新 鉴于题主说老师已经收回对行数的要求,就请大家看过则罢,不要再点赞了(还有收藏的是什么鬼?).本文说的不过是一些投机取巧的伎俩,不值取,不可取. ~~~以下是原文~~~: 一个熟练工程序 ...

  4. _【超详细指北】python大作业!

    [超详细指北]python大作业! ​ 这是笔者最近写python大作业时写的一个实现过程笔记,也就是基本上可以说是本人从0开始上手的一个python练习.程序和本文档从 4.29-5.15日 总共历 ...

  5. kaggle经典题--“泰坦尼克号”--0.8275准确率--东北大学20级python大作业开源(附详细解法与全部代码以及实验报告)

    kaggle经典题--"泰坦尼克号"--0.8275准确率--东北大学20级python大作业开源(附详细解法与全部代码以及实验报告) 前言 开发环境 一.导入包: 二.实验数据的 ...

  6. Python011: Python大作业之移动的小火车动画(四)代码实现

    书接上文:Python010: Python大作业之移动的小火车动画(三)结果显示 0.注意: ​ 该项目使用的库和资源说明如下: pygame 2.0.1 (SDL 2.0.14, Python 3 ...

  7. Python大作业之就诊卡管理信息系统[原创]

    Python大作业之就诊卡管理信息系统[原创] 项目地址: 网页链接:http://patientcard.dreamtownapi.com/ 后端地址:http://django.dreamtown ...

  8. html网页设计代码作业——家乡介绍-长治(8页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html网页制作期末大作业成品_网页设计期末作业

    HTML5期末大作业:家乡介绍网站设计--家乡介绍-长治(8页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html网页制作期末大作业成品_网页设计期末作业 常见网页设计作业题 ...

  9. html期末作业代码网页设计——云南民族文化(8页) HTML+CSS+JavaScript html网页制作期末大作业成品_网页设计期末作业

    HTML5期末大作业:家乡文化网站设计--云南民族文化(8页) HTML+CSS+JavaScript html网页制作期末大作业成品_网页设计期末作业 常见网页设计作业题材有 个人. 美食. 公司. ...

最新文章

  1. 异常 try catch finally return 执行关系 MD
  2. 【树链剖分】春季大扫除(P6805)
  3. 【渝粤教育】电大中专幼儿园课程论 (7)作业 题库
  4. 多浏览器判断,切换及使用
  5. Linux按照行数、大小切分文件
  6. 关于shiro授权 This subject is anonymous - it does not have any identifying principals and authorization
  7. Hexo,自定义博客主题
  8. 循序渐进之Spring AOP(5) - 创建切面
  9. windows核心编程第二章阅读
  10. [BX]和loop指令06 - 零基础入门学习汇编语言28
  11. qt之解决qtableview加载百万行数据卡顿问题
  12. idea学生授权申请
  13. 盘点:2012中国互联网大会十大亮点
  14. java 刘意 2018_2018年刘姓宝宝起名,2018年刘姓宝宝名字大全
  15. vue单页面怎么做SEO优化
  16. 人类的智能是如何产生的
  17. react-子传父案例(汇率转换)
  18. 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系
  19. TypeScript(八)装饰器
  20. 《点石成金》(持续更新)

热门文章

  1. java能否调用com_java调用com
  2. linux nona怎么用_nano命令_Linux nano 命令用法详解:字符终端文本编辑器
  3. windows python 访问mtp存储空间_用Windows电脑训练深度学习模型?超详细配置教程来了...
  4. linux unix域socket_Socket通信原理
  5. java怎么把system.out的东西输出到文件上
  6. !doctype html报错h5,【Web前端问题】javascript import 报错
  7. 谷歌发布最新版安卓Android,谷歌正式除名华为,安卓12华为首发无望,但鸿蒙将迎难顶上!...
  8. php制作简单的用户登陆,如何用php代码实现简单的用户登陆以及登陆验证功能
  9. roads 构筑极致用户体验_长安马自达「悦马星空」计划上线,为用户带来极致服务体验...
  10. 【处理手记】Configuration system failed to initialize异常的另类原因