当前位置: 首页 > wzjs >正文

淄博做网站建设公司做电影网站的资源从哪里换

淄博做网站建设公司,做电影网站的资源从哪里换,wordpress首页模板是哪个文件,网站改标题关键词描述在《Pygame中自定义事件处理的方法2-1》中提到了处理自定义事件的方法。通过处理自定义事件,可以实现动画等效果。 1 弹跳小球程序 通过处理自定义事件,可以实现弹跳小球程序,如图1所示。 图1 弹跳小球程序 2 弹跳小球程序原理 实现弹跳小…

在《Pygame中自定义事件处理的方法2-1》中提到了处理自定义事件的方法。通过处理自定义事件,可以实现动画等效果。

1 弹跳小球程序

通过处理自定义事件,可以实现弹跳小球程序,如图1所示。

图1 弹跳小球程序

2 弹跳小球程序原理

实现弹跳小球程序的原理就是每隔一定时间将自定义事件放到事件队列中,当程序从队列中取出该事件后,改变小球的纵坐标,实现动画效果。

3 弹跳小球程序的实现

弹跳小球程序实在Pygame游戏编程框架的基础上实现的。

3.1 Pygame游戏编程框架

Pygame游戏编程框架代码如图2所示。

图2  Pygame游戏编程框架代码

其中,第1-3行代码导入Pygame游戏编程所需的模块;第5行代码对pygame进行初始化;第6行代码创建pygame窗口,其高度和宽度分别是400和600;第7行代码设置pygame窗口的标题。第9-13行代码通过while True循环获取事件队列中的事件,并对事件类型event.type进行判断,如果用户点击了窗口右上角的关闭按键,则退出pygame以及整个程序。第15行代码设置pygame窗口背景色;第16行代码显示窗口中的内容。图2所示Pygame游戏编程框架代码运行后的结果如图3所示。

图3 Pygame游戏编程框架代码运行后的结果

3.2 创建自定义事件并将事件放入到队列中

创建自定义事件并将事件放入到队列中的代码如图4所示。

图4 创建自定义事件并将事件放入到队列中的代码

其中,程序每隔10毫秒就会将自定义事件down_message放入到队列中,也就是说小球每隔10毫秒会改变一次位置纵坐标。

3.3 导入小球图片

导入小球图片的代码如图5所示。

图5 导入小球图片的代码

第9行代码的作用是导入名为“ball.png”的图片,因为小球图片的尺寸比较大,第10行代码的作用是将小球图片缩小到原来的二分之一。

相关链接1 导入图片的详细讲解请参考

《《Python游戏编程入门》注-第6章1》

注意1 小球图片““ball.png”必须与源代码文件在同一目录下。

3.4 设置小球初始位置

设置小球初始位置的代码如图6所示。

图6 设置小球初始位置的代码

以上代码的作用是将小球初始位置设置为(150, 0)。

相关链接2  Pygame中Rect类的get_rect()方法以及move_ip()方法的详细介绍请参考

《Pygame中Rect类的使用方法2-1》

3.5 处理自定义事件

在while True循环中,使用如图7所示的代码处理自定义事件。

图7 处理自定义事件的代码

其中,第24行代码判断事件是否是自定义事件down_message,如果是则第25行代码增加小球图片位置的纵坐标ball_rect.bottom,down_vel表示小球下降/上升的速度,在while True之前定义为10;第26-27行代码确保当小球达到屏幕最底部或者最顶部时发生反弹,即速度down_vel改变方向,实现弹跳的功能。

3.6 绘制小球绘制

小球的代码如图8所示。

图8 绘制小球的代码

在修改了小球的位置之后,在修改之后的位置上绘制小球。

注意2 绘制小球的代码在while True循环中,但是在图7所示的处理自定义事件代码的外面。

4 完整代码

弹跳小球的完整代码如下所示。

import pygame
import sys
from pygame.locals import *pygame.init()
screen = pygame.display.set_mode((400,600))
pygame.display.set_caption('弹跳小球')ball = pygame.image.load('ball.png')
ball = pygame.transform.scale_by(ball, 1/2)ball_rect = ball.get_rect()
ball_rect.move_ip(150, 0)down_message = pygame.USEREVENT + 0
pygame.time.set_timer(down_message, 10)
down_vel = 3while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()if event.type == down_message:ball_rect.bottom += down_velif ball_rect.bottom>=600 or ball_rect.top<0:down_vel = -down_velscreen.fill((0,0,100))screen.blit(ball, ball_rect)pygame.display.update()

http://www.dtcms.com/wzjs/569067.html

相关文章:

  • 郑州专门做网站的公司汉中市建设工程招投标信息网官网
  • 宝安建网站电子商务网站功能设计
  • 曹县住房和城乡建设局网站wordpress主题 胖子马
  • wordpress 网站统计17网一起做网店普宁
  • 做家教去哪个网站廉政网站建设
  • 企业网站制作公司有哪些百度怎样做网站并宣传网站
  • 网站建设与维护工作内容石家庄网络关键词排名
  • 网站建设付款分期付款协议wordpress手动安装
  • 盐城经济技术开发区建设局网站与wordpress集成软件
  • 郑州网站建设铁哥们双桥集团网站建设
  • 一起做网店网站特点中国建行网站
  • 开发网站哪家好美容行业培训网站建设
  • 济南酷火网站建设电子工程师资格证
  • 最新汽车网站大全阿里巴巴网站维护要怎么做
  • 小说网站开发源码常州好搜网络科技有限公司
  • 做网站维护的是什么人广州制作网站公司
  • 企业网站维护工作手机免费建wap
  • 做电影网站步骤北京网站建设兴田德润官网多少
  • 电脑装机网站遵义网站建设服务
  • 深圳罗湖区网站建设c2c模式盈利模式
  • 郑州高新区做网站开发的公司网络营销课程思维导图
  • 昆明云南微网站制作哪家好新开服网页游戏一览表
  • 抓好门户网站 建设广告设计工资高吗
  • 网站创意设计公司菠菜网站建设尊尚天成
  • 如何建设网站24小时接单it培训机构哪家强
  • 上海网站建设找站霸网络网盘资源
  • 网站备案时核验单今天中美关系最新消息
  • 建设公司需要网站吗网站开发公对公转账合同模板
  • 新乡网站开发江门建站网站模板
  • 提供企业网站建设公司网站教程网