用Python写

登录优酷尊享品质观影体验

VIP登錄,跳过广告看大片

  • 举报视频:用python写西游记

看这个系列需要有Python的基础知识雖然一开始想写一篇Python概要的,实在是很庞杂而且有那么多好的Python基础教程,自己就不多插一脚了吧入门的话,有详尽的话,可以看看Python核心编程或者Python编程金典然后IBM上的“可爱的Python”系列也很不错,可以扩展一下思维

Pygame是一个利用SDL库的写就的游戏库,SDL呢全名Simple DirectMedia Layer,是一位叫做Sam Lantinga嘚大牛写的据说他为了让Loki(致力于向Linux上移植Windows的游戏的一家大好人公司,可惜已经倒闭唉好人不长命啊……)更有效的工作,创造了这個东东

SDL是用C写的,不过它也可以使用C++进行开发当然还有很多其它的语言,Pygame就是Python中使用它的一个库Pygame已经存在很多时间了,许多优秀的程序员加入其中把Pygame做得越来越好。

你可以从下载Pygame选择合适你的操作系统和合适的版本,然后安装就可以了(什么你连Python都没有?您可能是不适合看这个系列了不过如果执意要学,很好!快去下载吧!) 一旦你安装好,你可以用下面的方法确认下有没有安装成功:

你嘚版本可能和我不同这没关系。我所翻译的这本书上的版本还是1.7.1的……所以如果有些过时的不合时宜的东西千万不要客气请指出来!

若说为什么要介绍这么一个“过时”的东西,真正的知识是不会过时的只有技术才会。这里主要是依靠Pygame来介绍的游戏开发的方方面面並不是说咱就可以靠这个做出什么伟大的游戏了(当然也不是说不可以)!

另外说一下,就产品而言Pygame更致力于2D游戏的开发,也就是说伱可以用Pygame写一个植物大战僵尸,但是写一个魔兽世界则相当困难……请不要做出鄙夷的目光底层的东西永远是相通的,而且对于新手而訁从简单的2D入手才是正途。

Pygame有很多的模块下面是一张一览表:

使用游戏手柄或者 类似的东西
就是我们在学的这个东西了……

有些模块鈳能在某些平台上不存在,你可以用None来测试一下

学程序一开始我们总会写一个Hello world程序,但那只是在屏幕上写了两个字现在我们来点更帅嘚!写好以后会是这样的效果:

#导入一些常用的函数和常量

#向sys模块借一个exit函数用来退出程序

#初始化pygame,为使用硬件做准备

这个程序需要两张图爿,你可以在这篇文章最后的地方找到下载地址虽然你也可以随便找两张。为了达到最佳效果背景的 sushiplate.jpg应要有640×480的分辨率,而光标的fugu.png大約应为80×80而且要有Alpha通道(如果你不知道这是 什么,还是下载吧……)
注意:代码中的注释我使用的是中文,如果执行报错可以直接刪除。

游戏中我已经为每一行写了注释另外如果打算学习,强烈建议自己动手输入一遍而不是复制粘贴!

稍微讲解一下比较重要的几个蔀分:

set_mode会返回一个Surface对象代表了在桌面上出现的那个窗口,三个参数第一个为元祖代表分 辨率(必须);第二个是一个标志位,具体意思见下表如果不用什么特性,就指定0;第三个为色深

创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用
创建一个硬件加速的窗口必须和FULLSCREEN哃时使用
创建一个OPENGL渲染的窗口
创建一个可以改变大小的窗口
创建一个没有边框的窗口

convert函数是将图像数据都转化为Surface对象,每次加载完图像以後就应该做这件事件(事实上因为 它太常用了如果你不写pygame也会帮你做);convert_alpha相比convert,保留了Alpha 通道信息(可以简单理解为透明的部分)这样峩们的光标才可以是不规则的形状。

游戏的主循环是一个无限循环直到用户跳出。在这个主循环里做的事情就是不停地画背景和更新光標位置虽然背景是不动的,我们还是需要每次都画它 否则鼠标覆盖过的位置就不能恢复正常了。

blit是个重要函数第一个参数为一个Surface对潒,第二个为左上角位置画完以后一定记得用update更新一下,否则画面一片漆黑

这是一个最最大概的Pygame程序的印象,接下来我们会学习更多罙层次的东西并且把各条语句都真正读懂。

本次使用的两张图片资源:

本文介绍事件总线EventBridge Python SDK中包含的内容内容介绍事件总线EventBridge Python SDK提供下表中丰富的文档内容,您在实际操作过程中可以参见这些内容文档 说明 版本说明 介绍Python SDK的版本更新记录。安装Python SDK 介绍...

前提条件创建阿里云Elasticsearch实例且实例满足写入高可特性的使用条件:版本为6.7.0、数据节点规格不低于2核4 GB。具体操作请参见创建阿里云Elasticsearch實例。注意 目前写入高可特性仅支持华北2(北京)地域背景信息写入高可...

配置Elasticsearch公网或私访问白名单 访问实例 创建索引 创建文档并插叺数据 背景信息Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,是遵从Apache开源条款的一款开源产品是当前主流的企业级搜索引擎。它提供了┅个分布...

若您的应用程序部署在本地或其他网络内可以使用地址进行连接。切换方法请参见切换读写分离地址类型只读实例的同步为什么会延迟?详情请参见RDS MySQL只读实例同步延迟原因与处理读写分离地址和主实例内外地址有什么区别?开通...

所以很多用户会使用PostgreSQL作為小的数据仓库使用同时又能提供高并发访问。未来推出的PostgreSQL 13还将支持列存储引擎分析能力还会有巨大的提升。使用mysql_fdw插件能够将PostgreSQL和MySQL连接同步MySQL数据进行数据分析。操作...

当用户要使用应用服务器对外服务的时候OSS可以作为后端静态资源的存储。这个时候应用服务器建议只获取OSS的读权限以降低被攻击的风险可以设置读写权限分离,给应用服务器一个只读权限的用户即可创建一个ram_test_pub的账号,在授权...

格式各参數说明如下:名称类型是否必需是否有使用限制描述举例metricString是只可包含大小写英文字母、中文、数字,以及特殊字符 ():,[]=‘#存储的指标名sys.cpu说明 高可用版本支持的metric长度最多为255字节。timestampLong是无时间...

开启读写分离后系统会额外提供一个读写分离地址或只读地址,您可以使用这个地址实现讀写分离您只需增加只读实例的个数,即可不断扩展系统的处理能力应用程序无需做任何修改。操作指导 创建MySQL只读实例 MySQL开通读写分离 創建SQL ...

Schema(映射数据库)和MaxCompute映射表然后通过MySQL客户端或者MySQL命令行工具连接DLA中的MaxComputeSchema,使用标准SQL语句读取MaxCompute数据准备工作 在DLA中完成以下准备工作:开通云原生数据湖分析服务 重置数据库账号密码 在...

使用读写分离过程中,若您需要某些查询语句获取实时性的数据可通过Hint格式将这些查詢语句强制转发至主实例执行。RDS读写分离支持的Hint格式为/*FORCE_MASTER*/指定后续SQL到主实例执行。示例如下: FORCE_MASTER*/SELECT*FROM table...

带宽取决于内网带宽同时受到Redis实例与愙户端之间的网络带宽限制,建议使用内网连接方式排除外影响,发挥最大的带宽性能连接数计算规则 每秒新建连接数上限即每秒內可新增的连接数量。例如实例的每秒新建连接数上限为10,000...

带宽取决于内网带宽,同时受到Redis实例与客户端之间的网络带宽限制建议使用内网连接方式,排除外影响发挥最大的带宽性能。连接数计算规则 每秒新建连接数上限即每秒内可新增的连接数量例如实例的烸秒新建连接数上限为10,000,...

若您不再需要读写分离功能您可以将其关闭。前提条件已开通读写分离功能详细步骤请参见开通读写分离。紸意事项 关闭读写分离时会有1次30秒内的闪断建议在业务低峰...选择读写分离标签。单击关闭读写分离在弹出的对话框中,单击确定

夲文介绍数据读写相关的使用限制。分类限制项限制说明备注 Project写入流量保护写入流量最大为30 GB/min如超过限制,返回状态码403提示Inflow Quota Exceed。如您有更夶的使用需求请提工单申请。写入次数保护写入次数最大为600000次/...

云数据库Redis版读写分离实例可细分为非集群读写分离和集群读写分离二者嘚命令限制也有所不同。实例架构架构说明命令限制 非集群读写分离非集群读写分离实例即单分片的读写分离实例架构中包含1个由master和replica组荿的读写分片,以及...

读写分离地址分为外地址和内网(专有网络)地址可以根据业务场景需要进行切换。若您的应用程序部署在相同專有网络(VPC)内建议使用内网地址,安全高效;若您的应用程序部署在本地或其他网络内可以使用地址进行连接。前提条件 ...

实例使用的是共享代理实例已开通读写分离。实例为如下版本:MySQL 5.7高可用版(本地SSD盘)MySQL 5.6 SQL Server 2017集群版 调试您可以在OpenAPI Explorer中直接运行该接口免去您计算签洺的困扰。运行成功后OpenAPI Explorer可以...

您可以通过RDS管理控制台的监控页面查看读写分离的性能。...在监控标签标签中选择引擎监控,如下图所示查看TPS(平均每秒事务数)/QPS(平均每秒SQL语句执行次数)的数据,即可查看主实例以及各个只读实例的读写次数

使用MySQL命令行时,需要在命囹行中指定-c参数用来识别MySQL语句前的Hint。mysql hxxx-Pxxx-uxxx-pxxx db_name ch:DLA的连接串信息通过DLA控制台获取。P:DLA的连接端口通过DLA控制台获取。u:DLA用户名详情,请参见账號和权限...

每次是数据操作可以使用多个指标数据。多值模型数据写入请求路径和方法请求路径请求方法描述/api/mputPOST一次写入多个数据点注意:哆值模型数据和原来写入的单值模型数据不兼容单值模型数据需要通过原有的 api/put 进口进行写入。同时多...

格式各参数说明如下:名称类型昰否必需是否有使用限制描述举例metricString是可以包含大小写英文字母、中文、数字,以及特殊字符-_./() []='#存储的指标名sys.cputagsMap否可以包含大小写英文字母、中攵、数字以及特殊字符-_./():,[] '...

单次数据操作可以使用多个指标数据。多值模型数据写入请求路径和方法 请求方法描述 POST一次写入多个数据点 注意 哆值模型数据和原来写入的单值模型数据不兼容单值模型数据需要通过原有的/api/put 接口进行写入。同时多值写入数据需要...

请求内容数据点格式为 JSON 格式各参数说明如下:名称 类型 是否必需 是否有使用限制 描述 举例 metric String 是 只可包含大小写英文字母、中文、数字,以及特殊字符-_./():,[]=‘#存储嘚指标名 sys.cpu timestamp Long 是 无 时间戳;...

我要回帖

 

随机推荐