嗨玩手游网

Python开发:数字推盘游戏的动态效果绘制

大多数游戏都涉及动态效果,如植物大战僵尸中子弹的发射效果、僵尸的移动效果等。实现动态效果的原理是文本或图片的更换、位置的改变以及屏幕的刷新。基础的动态效果分为以下3种。

(1)多次修改Surface对象绘制的位置并连续绘制刷新,实现移动效果。

(2)在同一位置绘制不同的Surface对象,实现动画效果。

(3)连续绘制不同Surface对象的同时,修改绘制的位置,实现移动的动画。

这里以数字推盘游戏中方块的移动为例讲解如何实现移动效果。

数字推盘游戏的方块由矩形和文本组成,其中文本使用font模块的Font()函数、render()方法以及Surface 类的blit()方法绘制,矩形使用pygame 中draw模块的 rect()函数绘制。因此实现数字方块移动需要经过以下作。

(1)绘制矩形方块。

(2)绘制数字。

(3)移动方块。

下面分别实现以上操作。

1.绘制矩形方块

pygame 的子模块draw 中的rect()函数用于在Surface 对象上的指定位置绘制矩形,

该函数的声明如下:

  rect (Surface, color, Rect, width=0) -> Rect

rect( )函数接收4个参数,其中参数Surface 接收一个Surface对象,参数color用于设置矩形颜色,参数Rect接收一个矩形对象,以设置矩形绘制的位置和区域,参数width用于设置外沿的厚度,默认为0。rect()函数被调用后会返回一个矩形对象。在窗体Surface对象WINSET的中心位置绘制分辨率为60像素×60像素的黄色矩形,具体代码如下:

  BLOCKSIZE =60 #定义矩形边长  # 创建矩形  blockRect = pygame.Rect (0.5*(WINWIDTH-BLOCKSIZE),   0.5* (WINHEIGHT-BLOCKSIZE),   BLOCKSIZE, BLOCKSIZE)  pygame.draw.rect (WINSET, BTCOLOR, blockRect ) #绘制矩形

将此段代码添加到程序7-pg-test-py中,执行程序,程序执行结果如下图所示。

2.绘制数字

方块上的数字应位于方块的中心,矩形对象的左上角坐标代表矩形的位置,目前方块已位于屏幕中心,假设数字的矩形对象为numRect,则其在屏幕中的x、y坐标分别如下。

(1)numRect.x=blockRect.x+0.5*(BLOCKSIZE-numRect.width)

(2) numRect.y =blockRect.y +0.5*(BLOCKSIZE-numRect.heigh)

假设方块中的数字为5,绘制数字,将其置于方块中心,具体代码如下:

  # 写数字  numSurf = BASICFONTder('5', True, BTTEXTCOLOR, BTCOLOR)  numRect = numSurf.get_rect() numRect.x = blockRect.x + 0.5 * (BLOCKSIZE - numRect.width) numRect.y = blockRect.y + 0.5 * (BLOCKSIZE - numRect.height)

由于数字位置的确定依赖于方块的位置,此段代码应位于方块代码之后。

3方块

移动效果通过在不同但连续的位置绘制同一个Sruface对象实现。推盘中的方块由方块图像blockSurf和数字图像numSurf组成,因此要实现推盘方块的移动,需同步移动方块图像和数字图像。在for循环中实现blockSurf和numSurf的连续移动与绘制,具体代码如下:

... # 在背景的不同位置绘制方块,制造移动效果。方块向有移动BLACKSIZE+2 SIZE), BLOCKSIZE, BIOCKSIZE) pygane.draw.rect (WINSET, BTCOLOR, blockRect) # 写数字 numSurf - BASICFONTder('5', True, BTTEXTCOLOR, BTCOLOR) nunRect = nunSurf.get_rect() numRect.x blockRect.x + 0.5 * (BLOCKSI2E - numRect.width) numRect.y = blockRect.y + 0.5*(BIOCKSIZE - numRect.height) # 在背景的不同位置绘制方块,制造移动效果。方块向右移动BLOCKSIZE+2 for i in range(0, BLOCKSIZE, 2): FPSCLOCK.tick(EPS) # 绘制 Pygame.draw.rect(WINSET,BTCOLOR,blockRect) WINSET.blit(numSurf,numRect) pygame.display.update () # 修改方块和数字的横坐标 blockRect.x +=10 # 修改方块横坐标 numRect.x +e 10 # 修改数字横坐标 WINSET.blit(baseSurf,(0,0)) # 使用备份baseSurf覆盖WINSET pygame.quit() # 卸载所有模块if __name__ == '__main__': main()

保存更改并执行程序7_pg.test.py,程序运行之初与结束之前方块所在位置分别如图a和b所示。

由图下图可知,程序成功实现了方块的移动。

微信隐藏玩法

发现微信的隐藏玩法.微信隐藏彩蛋.快来艾特你的朋友试一试吧

1地区恶搞

2拍一拍特效 : 炸弹攻击/:bome

3群聊@特效: คิดถึง

4微信变小霸王游戏机: 1.6ttt

第一步:在“我”里面随便添加一个状态

第二步:在输入状态的地方选择添加表情

第三步:在搜索一个养鸡 或者你想养其他 养猪养狗之类的都可以

第四步:完成。你就可以在你的状态主页上看见有只小鸡在跑了

50个超实用微信小程序功能强大省内存

实用工具

01手机清尘:定期给你的手机耳机孔清灰

02酒店摄像头扫描:保护女性出行隐私,住店必备

03拉了吗: 资料查询附近厕所,在外拉屎不用愁

04车轮查违章违章查询:违章代缴,违章监控图查看

05亲戚关系称谓计算器 : 串亲戚必备的小程序,过年必备

06薄荷食物库: 食材营养元素表,减肥健身必备

07成分随手查:食品,化妆品成分扫一扫就知道

08喝酒神器:酒桌上的各种小游戏,各种好玩娱乐

09WIFI一键连:腾讯wifi管家出品,安全快速连接

10微信辟谣助手:搜索识别谣言,接收辟谣提醒

好玩有趣

01群里有侦探:推理类小程序,大量烧脑题目挑战

02数字推盘: 数字华容道,舒尔特方格,数独等小游戏

03小鸡词典: 收录各种风趣幽默,视角独特的网络词典

04手持弹幕: 让手机瞬间变成LED灯板

05斗图表情包制作: 快速的表情包制作工具

06试盒: 一款可以免费申请试用的宝藏小程序

07口红试色: 女生必备除了试色还有口红推荐

08丧燃日历: 每日毒鸡汤,又丧又燃地鼓励自己

09今天吃什么:点餐叫外卖选择困难症用这个

10神奇字体:各种字体特效,简单制作与众不同的朋i

工作类

01社保计算器: 提供全国各地区社保公积金明细查询和代缴

02草料二维码 : 方便快速进行二维码与链接转换

03 Readhub: 高质量的互联网新闻资讯

04迅捷PDF转换器: 支持各种转换功能

05 Fotor懒设计: 在线平面设计一站式平台

06投票帮: 一款免费的投票小程序

07网盘搜索引擎Pro: 查找搜索网盘资源工具

08标准证件照: 键生成好看的证件照

09以图识字: OCR图片文字识别工具

10专去水印:专门去除短视频水印并下载

学习类

01自律的我 : 适合学生党和工作党,目标完成和打卡

02有书共读: 在线读书每周共读一本书

03豆瓣评分: 不用下载App,提供电影评分,资料

04很丧的书 : 看淡点,在这里没有最丧只有更丧

05好奇心杂志: 最有想法最值得关注的各界动态

06腾讯翻译君 : 功能强大的翻译小程序

07天天练口语: 英语,日语,韩语08人生进度把人的一生比做电池,直观显示剩余电量

09印象笔记微清单: 快速创建工作学习计划等清单

10一周进步: 效率干货素材输出神器专栏

生活类

01下厨房: 美食烘焙一键查询

02小睡眠: 上班族早晚倒班必备

03车来了: 精准公交,通勤必备,告别等车焦虑

04快递100: 查快递,寄快递,日常必备

05传图识字: 超级强大的图片识别工具

06生活垃圾分类助手: 垃圾分类指南工具

07极简汇率: 汇率换算,生活必备

08鲨鱼记账: 专业的生活记账小程序

09微信助手 : 线下开需求的实用工具

10小病自助: 可以当做一个家庭医生使用

今天的分享就到这了 记得转发收藏关注哟

更多资讯
游戏推荐
更多+