手机版python3h如何自制游戏_教你如何用 Python 写一个小游戏
教你如何用 Python 写一个小游戏
引言
最近 python 语言大火, 除了在科学计算领域 python 有用武之地之外, 在游戏后台等方面, python 也大放异彩, 本篇博文将按照正规的项目开发流程, 手把手教大家写个 python 小游戏, 来感受下其中的有趣之处本次开发的游戏叫做 alien invasion
安装 pygame 并创建能左右移动的飞船
安装 pygame
本人电脑是 windows 10python3.6,pygame 下载地址: 传送门 https://pypi.python.org/pypi/Pygame/1.9.3
请自行下载对应 python 版本的 pygame
运行以下命令$ pip install wheel
$ pip install pygame1.9.3cp36cp36mwin_amd64.whl
创建 Pygame 窗口及响应用户输入
新建一个文件夹 alien_invasion, 并在文件夹中新建 alien_invasion.py 文件, 输入如下代码importsys
importpygame
defrun_game():
#initialize game and create a dispaly object
pygame.init()
screen=pygame.display.set_mode((1200,800))
pygame.display.set_caption("Alien Invasion")
# set backgroud color
bg_color=(230,230,230)
# game loop
whileTrue:
# supervise keyboard and mouse item
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
# fill color
screen.fill(bg_color)
# visualiaze the window
pygame.display.flip()
run_game()
运行上述代码, 我们可以得到一个灰色界面的窗口:
$ python alien_invasion.py
创建设置类
为了在写游戏的过程中能便捷地创建一些新功能, 下面额外编写一个 settings 模块, 其中包含一个 Settings 类, 用于将所有设置存储在一个地方这样在以后项目增大时修改游戏的外观就更加容易
我们首先将 alien_invasion.py 中的显示屏大小及显示屏颜色进行修改
首先在 alien_invasion 文件夹下新建 python 文件 settings.py, 并向其中添加如下代码:classSettings(object):
"""docstring for Settings"""
def__init__(self):
# initialize setting of game
# screen setting
self.screen_width=1200
self.screen_height=800
self.bg_color=(230,230,230)
然后再 alien_invasion.py 中导入 Settings 类, 并使用相关设置, 修改如下:importsys
importpygame
fromsettingsimportSettings
defrun_game():
#initialize game and create a dispaly object
pygame.init()
ai_settings=Settings()
screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
# set backgroud color
bg_color=(230,230,230)
# game loop
whileTrue:
# supervise keyboard and mouse item
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
# fill color
screen.fill(ai_settings.bg_color)
# visualiaze the window
pygame.display.flip()
run_game()
添加飞船图像
接下来, 我们需要将飞船加入游戏中为了在屏幕上绘制玩家的飞船, 我们将加载一幅图像, 再使用 Pygame()方法 blit()绘制它
在游戏中几乎可以使用各种类型的图像文件, 但是使用位图 (.bmp) 文件最为简单, 这是因为 Pygame 默认加载位图虽然其他类型的图像也能加载, 但是需要安装额外的库我们推荐去免费的图片素材网站上去找图像: 传送门 https://pixabay.com/ 我们在主项目文件夹 (alien_invasion) 中新建一个文件夹叫 images, 将如下 bmp 图片放入其中
接下来, 我们创建飞船类 ship.py:importpygame
classShip():
def__init__(self,screen):
#initialize spaceship and its location
self.screen=screen
# load bmp image and get rectangle
self.image=pygame.image.load('image/ship.bmp')
self.rect=self.image.get_rect()
self.screen_rect=screen.get_rect()
#put spaceship on the bottom of window
self.rect.centerx=self.screen_rect.centerx
self.rect.bottom=self.screen_rect.bottom
defblitme(self):
#buld the spaceship at the specific location
self.screen.blit(self.image,self.rect)
最后我们在屏幕上绘制飞船, 即在 alien_invasion.py 文件中调用 blitme 方法:importsys
importpygame
fromsettingsimportSettings
fromshipimportSettings
defrun_game():
#initialize game and create a dispaly object
pygame.init()
ai_settings=Settings()
screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
ship=Ship(screen)
pygame.display.set_caption("Alien Invasion")
# set backgroud color
bg_color=(230,230,230)
# game loop
whileTrue:
# supervise keyboard and mouse item
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
# fill color
screen.fill(ai_settings.bg_color)
ship.blitme()
# visualiaze the window
pygame.display.flip()
run_game()
重构: 模块 game_functions
在大型项目中, 经常需要在添加新代码前重构既有代码重构的目的是为了简化代码的结构, 使其更加容易扩展我们将实现一个 game_functions 模块, 它将存储大量让游戏 Alien invasion 运行的函数通过创建模块 game_functions, 可避免 alien_invasion.py 太长, 使其逻辑更容易理解
函数 check_events()
首先我们将管理事件的代码移到一个名为 check_events()的函数中, 目的是为了隔离事件循环importsys
importpygame
defcheck_events():
#respond to keyboard and mouse item
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
然后我们修改 alien_invasion.py 代码, 导入 game_functions 模块, 并将事件循环替换成对函数 check_events()的调用:importsys
importpygame
fromsettingsimportSettings
fromshipimportShip
importgame_functionsasgf
defrun_game():
#initialize game and create a dispaly object
pygame.init()
ai_settings=Settings()
来源: https://cloud.tencent.com/developer/article/1023469?fromSource=waitui
手机版python3h如何自制游戏_教你如何用 Python 写一个小游戏相关推荐
- python文字小游戏大全_教你如何用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- python能制作游戏吗_如何用python写一个小游戏
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游 ...
- 使用python制作聊天框解谜游戏_使用Python写一个小游戏alien invasion!
最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...
- 关于python小游戏的毕业论文_使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- python写游戏脚本-使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- python编程小游戏-使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- 用python做一个简单的游戏,用python写一个小游戏
大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...
- python编写一个弹球游戏_Python实战案例:用Python写一个弹球游戏,就是这么强
我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python ...
- python如何开发网站_如何用Python写一个小网站?
一.准备 python基础相关准备:pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通"安python 3.8.0 在python官网下载,不 ...
最新文章
- Asp.net based Web Application部署后的问题
- 用Itext把数据导出到Pdf文档
- Docker操作命令详解
- 2013.10u-boot移植之SD保存环境变量
- 前端学习(1848)vue之电商管理系统电商系统的开发模式和技术选型
- 领域驱动战略设计实践
- 自定制shell提示符
- 来了!5G和AI的未来 这10位行业领袖这么说
- 从IIS到PAGE对象:ASP.NET之旅
- C++中在堆区用new开辟空间
- 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
- IPv6基础介绍--IPv6路由基础--DHCPv6原理与配置——总结
- windows11配置检测工具-win11配置检测工具
- [cv]郑哲东 Deep-ReID——Learn pedestrian representations from
- MaC 修改MySQL密码
- 散列函数设计:除留余数法
- 苹果手机来电归属地_工信部 : 暂未出台取消手机号码归属地政策!
- 创业全攻略:从零到开具第一张发票
- JAVA面向对象程序设计-FeiGe快递系统-继承II
- 熬夜人必看!华佗在世!不看终身后悔