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

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


学习内容:安装Pygame

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

python -m pip install --user pygame

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

import sys
import pygamefrom settings import Settings
from ship import Shipclass 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 =700self.screen_height =600self.bg_color = (230,230,230)`
``import pygame
class Ship:'''管理飞船的类'''def __init__(self,ai_game):self.screen =ai_game.screenself.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.midbottomdef blitme(self):'在指定的位置绘制new space ship'self.screen.blit(self.image,self.rect)>LUCKY

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

  1. 一个Python的迷宫小游戏

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 迷宫小游戏 前言 一.python是什么? 二.使用步骤 1.引入库 2.读入数据 2.1.游戏开始 2.2.控制角色移动 2.3.鼠 ...

  2. 一个Python猜字小游戏

    开始Python的学习已经有了一小段时间,同学进行java的编程上传,我一看挺有意思,也来凑凑热闹,也希望可以得到锻炼,希望各位大佬可以指正一下我的代码,或是展示展示大佬们的高超编码手艺,Python ...

  3. python实现外星人入侵小游戏

    目录 前言 一.alien_invasion.py 二.game_function.py 三.settings.py 四.bullet.py 五.alien_bullet.py 六.ship.py 七 ...

  4. python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...

  5. python外星人入侵小游戏

    python外星人入侵小游戏 python外星人入侵小游戏 项目结构如图所示: (1)alien.py中的代码: (2)alien_invasion.py中的代码: (3)bullet.py中的代码: ...

  6. 手把手教你用Python改造一款外星人入侵小游戏

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 为学应须毕生力,攀高贵在少年时. ...

  7. python井字棋_用Python做一个井字棋小游戏

    井字棋是一个经典的小游戏,在九宫格上玩家轮流画OXO,当每列或每行或是两个对角成一线时便是获胜. 今天就用Python编写一个井字棋小游戏,与电脑对战. 程序执行画面如下图所示: 程序提供了两种人工智 ...

  8. python井字棋游戏人机对战_用Python做一个井字棋小游戏

    井字棋是一个经典的小游戏,在九宫格上玩家轮流画OXO,当每列或每行或是两个对角成一线时便是获胜. 今天就用Python编写一个井字棋小游戏,与电脑对战. 程序执行画面如下图所示: 程序提供了两种人工智 ...

  9. 【六一特别文章】Python编写一个六一儿童节问答小游戏及趣味比赛

    随着六一儿童节的到来,我们可以为孩子们编写一个有趣的小游戏,让他们在游戏中学习有关六一儿童节的知识.本文将介绍如何用Python编写一个六一儿童节问答小游戏及趣味比赛. 首先,我们需要准备一些有关六一 ...

最新文章

  1. Blender模块化建筑环境地形场景制作视频教程 Creating modular environments
  2. 用缓存拦截接口频繁的请求
  3. 机器学习面试题集 - 详解四种交叉验证方法
  4. 获取预制和获取gameObject
  5. javaweb学习总结(八)——HttpServletResponse对象(二)
  6. 【HDU 2814 扩展欧拉 a^b ≡ (a mod c)^b mod ϕ(c)+ϕ(c) modc,b=ϕ(c) 】
  7. 程序员小哥面对批评该怎么办?以我为例
  8. java 传递intent_Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法...
  9. POJ 3258 River Hopscotch
  10. php数值操作,php数值计算num类简单操作示例
  11. 计算机应用助手工程师,通信工程师备考助手
  12. 汽车LED驱动器MPQ3326替代替换
  13. 计算机格式化后,电脑格式化后需要重装系统吗_格式化电脑重装系统的方法步骤...
  14. Unity NavMesh寻路 A*(A star)分析及实例应用(一)
  15. spring mvc 配置使用定时任务
  16. 中国丙烯酸酯橡胶行业研究与投资预测报告(2022版)
  17. Android:禁止APP录屏和截屏
  18. 域服务器统一修改ie首页,通过AD域策略对IE做统一设定
  19. 汾阳市教师招聘中职计算机真题,2019年山西省吕梁市汾阳市中小学语文教师招聘/编制考试历年真题试卷及答案解析...
  20. HOUDINI 蚯蚓制作

热门文章

  1. 接口加密(TokenSpringCloud项目中进行token认证)
  2. Unity -- 用EasyAR制作出AR红包
  3. 前端单位px,pt,rem,逻辑像素,物理像素
  4. 爬虫报错requests.exceptions.ProxyError:/Failed to establish a new connection: [WinError 10061]
  5. 怎么把图片变清晰?图片变清晰方法分享。
  6. 监控系统 Prometheus 的说明
  7. java端口是多少钱_Java 接口,最少必要知识
  8. 《欲望之源》(《MEAN GENES》)
  9. 微信小程序下载文件并重命名,并在微信可以打开、保存并转发给好友
  10. Docker搭建数据库监控工具Lepus