alien-invasion

目录

1. 外星人入侵:使用 Python 开发游戏

将使用 Pygame 包来开发一款 2D 游戏,它在玩家每消灭一群向下移动的外星人后,都将玩家提高一个等级;而等级越高,游戏的节奏越快,难度越大。完成这个项目后,你将获得自己动手使用 Pygame 开发 2D 游戏所需的技能。

2. 项目规划

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

3. pygame 模块常用函数

函数名

作用

pygame.init()

初始化背景设置

screen = pygame.display.set_mode((1200, 600))

设置显示窗口大小

pygame.display.set_caption('Alien Invasion')

设置标题

pygame.event.get()

捕获键盘鼠标事件

screen.fill(bg_color)

设置背景色

pygame.display.flip()

刷新窗口,让最近绘制的屏幕可见

self.screen_rect = self.screen.get_rect()

获取对象外接矩形

self.image = pygame.image.load('images/ship.bmp')

加载图片

self.screen.blit(self.image, self.rect)

放置图像至指定的位置

4. 设计流程

4.1 基于Pygame 的基本框架

pygame.init()

pygame.display.set_caption('Alien Invasion')

screen = pygame.display.set_mode((ai_setting.screen_height, ai_setting.screen_width))

4.2 设计实现飞船模块

4.3 设计实现子弹模块

4.3 设计实现外星人模块

在该环节,我们将在游戏《外星人入侵》中添加外星人。

首先,我们在屏幕上边缘附近添加一个外星人,然后生成一群外星人。我们让这群外星人向两边和下面移动,并删除被子弹击中的外星人。

最后,我们将显示玩家拥有的飞船数量,并在玩家的飞船用完后结束游戏。

4.4 记分系统

在本章中,我们将结束游戏《外星人入侵》的开发。我们将添加一个Play按钮,用于根据需要启动游戏以及在游戏结束后重启游戏。我们还将修改这个游戏,使其在玩家的等级提高时加快节奏,并实现一个记分系统。阅读本章后,你将掌握足够多的知识,能够开始编写随玩家等级提高而加大难度以及显示得分的游戏。

5. 最终成果

python从入门到实践外星人入侵,GitHub - tryturned/alien-invasion: Python 编程从入门到实践项目之外星人入侵...相关推荐

  1. WPF编程基础入门 ——— 第二章 XAML

    XAML 简述 XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)是微软公司创建的一种新的描述性语言,用于搭建应用程序用户界面.XAML实 ...

  2. python编程从入门到实践之外星人入侵全代码

    好久没有更新了,最近寒假在家没事做,就想学点东西,在网上找到一本关于python的书籍<python编程从入门到实践>,经过大概一个多月的时间吧,也算是大致把本书浏览了一遍. 本人感觉这本 ...

  3. python基础学习[python编程从入门到实践读书笔记(连载二)]:外星人入侵项目

    第一版游戏demo 添加计分系统:中间是最高得分,右边是本次得分. 显示余下的飞船数 主函数如下,完整程序将上传到笔者的github:https://github.com/shizhengLi/lea ...

  4. 《Python编程从入门到实践》外星人入侵游戏——添加 飞船 图片和外星人 图片,素材

    <Python编程从入门到实践>在本书里学到的.本篇主要介绍该游戏中所需要的两个图片.分别为飞船和外星人图片. 1.首先去到 http://www.ituring.com.cn/book/ ...

  5. 怎么运行python外星人入侵_python编程:从入门到实践 外星人入侵项目:武装飞船 代码运行不显示飞船...

    我的飞船去哪了???!!! 照着书上的项目完整的代码运行一下,结果屏幕上没出现飞船,代码都是对的呀,这是咋回事? 屏幕高度问题 class Settings(): """ ...

  6. Python编程从入门到实践——外星人入侵代码

    学习python的新人一枚,在学习的过程中遇到了很多问题,最后通过在CSDN等网站上查阅资料等都慢慢解决了,写一个帖子,一方面是记录自己的代码,另一方面和大家分享一下. 目录 alien.py ali ...

  7. python编程:从入门到实践 外星人入侵项目:武装飞船 代码运行不显示飞船

    我的飞船去哪了???!!! 照着书上的项目完整的代码运行一下,结果屏幕上没出现飞船,代码都是对的呀,这是咋回事? 屏幕高度问题 class Settings():"""A ...

  8. python开发之父亲自编写《python编程从入门到实践》中译版图书销量破百万册,完整版PDF开放下载

    为什么要学习python 主流编程语言 世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语 ...

  9. python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受

    本文将以对话采访的形式展现 为什么会选择学习Python 语法简洁,实用,和golang部分类似,学习性价比高: 应用范围广,涉及后端,机器学习,图像处理,游戏等: 好奇这是一门怎样的语言 计划如何学 ...

最新文章

  1. ls -l |wc -l命令多统计一行
  2. 在阿里云服务器(ECS)上从零开始搭建nginx服务器
  3. linked-list-cycle-ii (数学证明)
  4. 关于MULE ESB相关的介绍
  5. mysql HEX将字符串或数字转化为16进制字符串、UNHEX将16字符串转化成二进制
  6. 谈谈iOS中粘性动画以及果冻效果的实现
  7. java如何创建一个两个数的队列_java线程池 如何构建一个线程立即到拉到MAX数量跑业务,线程到MAX了,额外的队列可以存储任务的线程池...
  8. linux内核没有iobuf,LINUX2.6.26.6内核下双口RAM的驱动函数测试成功!
  9. 主流的分布式事务解决框架
  10. BZOJ 3611: [Heoi2014]大工程 [虚树 DP]
  11. [转载] python maketrans_python2和python3中maketrans和translate的用法
  12. 【IE】IE对line-height 失效的的解决方案
  13. linux系统防火墙白名单,linux系统防火墙如何结束白名单
  14. Java中的Servlet详解
  15. Python读写修改Shapefile
  16. Smoke Screener or Straight Shooter: Detecting Elite Sybil Attacks in User-Review Social Networks阅读笔记
  17. java中ArrayList小案例(快敲20遍++)
  18. 前端开发人员的精彩文字
  19. 中职双师型教师计算机培训总结,双师型教师计算机培训心得体会.docx
  20. CSP-J CSP-S初赛相关知识汇总

热门文章

  1. angularjs学习总结(资料收集)
  2. 面试时关于“工作可预见困难有哪些”应聘者如何巧妙回答
  3. 《图像处理与计算机视觉算法及应用》读后感
  4. 51nod 1421 最大MOD值(高妙的调和级数复杂度)
  5. D3D Surface/Texture SDL DDraw渲染视频的区别和疑问
  6. time wait和close wait
  7. Java: static,final,代码块 的详解
  8. 字符串应用,expect预期交互,数组,正则表达式
  9. 0019-python学习笔记:竞技模型
  10. 网站广告效果评测指标介绍