热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python编程是啥(python编程100例)

为了防止玩家太早按下键盘,我们在第180行使用pygame.time.wait(添加半秒的等待时间。第196行的for循环对字典中的每个值进行循环。这是通过第197行和第198行的


确定苹果出现的位置163.defgetrandomlocation () :


164 .返回{ ' x ' : random.randint (0,蜂窝宽度-1),' y': random.randint(0) 0,蜂窝高度-1}


如果需要新的苹果,则需要调用getRandomLocation ()函数。 此函数返回包含横坐标x、y的词典。 x、y的值由random.randint随机生成。


游戏结束界面167.defshowgameoverscreen () :


168.game over fOnt=pygame.font.font (freesansbold.TTF,150 ) ) ) )。


169.gamesurf=字体调用程序(' game ',真,白) )。


170.over surf=字体调用程序(“over”,真,白)。


171. gameRect=gameSurf.get_rect (


172. overRect=overSurf.get_rect (


173.gamerect.midtop=(窗口宽度/2,10 ) ) ) ) ) ) ) ) ) ) )。


174.over rect.midtop=(窗口宽度/2,gameRect.height 10 25 ) ) ) ) ) ) ) )。


175.


176 .显示surf.blit (gamesurf,gameRect ) ) ) ) ) ) ) )。


177.display surf.blit (超曲面,超反射)。


178. drawPressKeyMsg (


179. pygame.display.update (


游戏结束界面与游戏开始界面相似,但游戏结束界面不是动画。 我们用两个Surf对象分别放“Game”和“Over”这个词。


180.pygame.time.wait(500 ) )。


181.checkforkeypress(#从事件队列中清除键盘按下事件


182.


183.while真:


184.if校验福克斯() :


185.pygame.event.get(# (清除#事件队列


186 .返回


“Game Over”在玩家按任意键之前显示在画面上。 为了防止玩家过早(可能不小心)按键盘,请在第180行使用pygame.time.wait ()添加半秒的等待时间。 在这半秒钟内,按键盘不会退出游戏结束界面,而是重新开始游戏。 (括号中的参数500表示500毫秒,即0.5秒)。 这是因为,例如玩家在最后关头想要避开屏幕的边缘,但是因为按按钮太晚蛇死了之类的事情会发生。 如果是这样的话,玩家很可能在showGameOverScreen ()被调用后按了键,此时按键将退出游戏界面并重新开始游戏。




Drawing函数下面的一些代码用于在屏幕上绘制分数、蛇、苹果和网格线。


188.Defdrawscore (得分) :


189.score surf=基本字体渲染(score : % s’% )得分),真,白) ) ) ) ) ) ) ) ) ) )。


190.scorerect=score surf.get _ rect (


191.scorerect.topleft=(窗口宽度- 120,10 ) ) ) ) ) ) ) ) ) ) ) )。


192.display surf.blit (得分子,得分子)。


drawScore ()函数设置字体格式,并将参数score中传递的文本内容显示在屏幕上。


195 .差速器密码(魔兽世界) :


196 .二维码:


197.x=酷睿[ ' x ' ] *蜂窝大小


198.y=酷睿*单元大小


199.wormsegmentrect=pygame.rect (x,y,细胞,细胞) )。


200.pygame.draw.rect (显示曲面、暗绿色、魔兽世界)。


201.worminnersegmentrect=pygame.rect (x 4,y 4,细胞尺寸- 8,细胞尺寸-8) ) ) ) )。


202.pygame.draw.rect (显示曲面、绿色、魔兽世界)

egmentRect)

drawWorm()函数给小蛇的每段身体绘制一个绿色的小方块(用绿色填充游戏屏幕上的一个网格)。每段身体都由wormCoords参数来传递(wormCoords是一个包含各段身体的坐标值的字典变量)。第196行的for循环对字典中的每个值进行循环。

由于网格的坐标占据了整个窗口并且是从(0,0)像素点开始的,我们很容易将网格坐标转化为像素坐标。这是通过第197行和第198行的乘式来实现的。

第199行创建了一个Rect对象,用于把小蛇的某段身体参数传递到第200行的pygame.draw.rect()中。由于所有网格小方格的边长都为CELLSIZE,小蛇的身体片段的边长也应为CELLSIZE。第200行通过将一个小方格填充为深绿色来绘制小蛇的身体片段。然后在深绿色小方格上面,我们叠加一个小一些的亮绿色方格,这让小蛇变得更好看一些。

亮绿色方格的横坐标比网格小方格要多4个像素(往右4个像素),纵坐标也多4个像素(向下4个像素),它的边长比网格小方格要小8个像素,因此亮绿色方格的下部和右部和网格也有4像素的距离。

205. def drawApple(coord):

206. x = coord['x'] * CELLSIZE

207. y = coord['y'] * CELLSIZE

208. appleRect = pygame.Rect(x, y, CELLSIZE, CELLSIZE)

209. pygame.draw.rect(DISPLAYSURF, RED, appleRect)

drawApple()函数和drawWorm()函数非常相似,只不过画红苹果时我们仅仅填充了了一个红色的方格,我们所要做的只是在206行和207行把坐标转换为像素坐标,在208行创建一个Rect对象来储存苹果的位置和大小,然后把这个Rect对象传递给pygame.draw.rect()函数。

212. def drawGrid():

213. for x in range(0, WINDOWWIDTH, CELLSIZE): # 画竖线

214. pygame.draw.line(DISPLAYSURF, DARKGRAY, (x, 0), (x, WINDOWHEIGHT))

215. for y in range(0, WINDOWHEIGHT, CELLSIZE): # 画横线

216. pygame.draw.line(DISPLAYSURF, DARKGRAY, (0, y), (WINDOWWIDTH, y))

为了让网格更明显,我们调用pygame.draw.line()函数来画出网格的横竖线。

通常,要画32条竖线,我们需要调用32次pygame.draw.line()函数:

pygame.draw.line(DISPLAYSURF, DARKGRAY, (0, 0), (0, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (20, 0), (20, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (40, 0), (40, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (60, 0), (60, WINDOWHEIGHT))

......

pygame.draw.line(DISPLAYSURF, DARKGRAY, (560, 0), (560, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (580, 0), (580, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (600, 0), (600, WINDOWHEIGHT))

pygame.draw.line(DISPLAYSURF, DARKGRAY, (620, 0), (620, WINDOWHEIGHT))

为了简便,我们可以使用第213行到第214行的for循环来代替以上这些代码。很多其他规律的图形也可以用循环来完成,这样我们就不需要打一大堆相似的代码。

219. if __name__ == '__main__':

220. main()

在所有需要的常数、函数、和全局变量都被定义和创建后,我们调用main()函数来开始游戏。

(未完待续)


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • Explain如何助力SQL语句的优化及其分析方法
    本文介绍了Explain如何助力SQL语句的优化以及分析方法。Explain是一个数据库SQL语句的模拟器,通过对SQL语句的模拟返回一个性能分析表,从而帮助工程师了解程序运行缓慢的原因。文章还介绍了Explain运行方法以及如何分析Explain表格中各个字段的含义。MySQL 5.5开始支持Explain功能,但仅限于select语句,而MySQL 5.7逐渐支持对update、delete和insert语句的模拟和分析。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了Python字典视图对象的示例和用法。通过对示例代码的解释,展示了字典视图对象的基本操作和特点。字典视图对象可以通过迭代或转换为列表来获取字典的键或值。同时,字典视图对象也是动态的,可以反映字典的变化。通过学习字典视图对象的用法,可以更好地理解和处理字典数据。 ... [详细]
  • 广度优先遍历(BFS)算法的概述、代码实现和应用
    本文介绍了广度优先遍历(BFS)算法的概述、邻接矩阵和邻接表的代码实现,并讨论了BFS在求解最短路径或最短步数问题上的应用。以LeetCode中的934.最短的桥为例,详细阐述了BFS的具体思路和代码实现。最后,推荐了一些相关的BFS算法题目供大家练习。 ... [详细]
author-avatar
cfpage
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有