位置: 编程技术 - 正文

用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动(python编写飞机大战)

编辑:rootadmin

推荐整理分享用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动(python编写飞机大战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python飞机代码,python飞机大战论文范文,python飞机大战论文范文,python编写飞机大战,python飞机代码,python快速编程入门飞机大战代码,如何用python做飞机大战游戏,如何用python做飞机大战游戏,内容如对您有帮助,希望把文章链接给更多的朋友!

目标是拷贝微信的飞机大战,当然拷贝完以后大家就具备自己添加不同内容的能力了。

首先是要拿到一些图片素材,熟悉使用图像处理软件和绘画的人可以自己制作,并没有这项技能的同学只能和我一样从网上下载相应的素材了。

网上可以找到相应的这样的图片,注意,所有的元件图片要是png类型的图片,那样可以有透明的背景,否则会有白色的边框露出来。

找到素材以后我们就要开始搭建我们的飞机大战了。

微信上的飞机大战是由手指控制的,在电脑上,我们就先用鼠标代替了。

按照之前我们在天空上移动云的那个程序,我们可以知道该怎么做。

无非是将背景和前景换一下。代码如下:

显示结果就会如下:

上次没有说明鼠标图片跟随鼠标位置的具体说法,这里说明一下,用pygame.mouse.get_pos()可以得到一个鼠标的当前坐标位置的元组,将这个值赋值给x, y ,之后可以用它方便调用,但是如果我们直接用这个量,图片将会出现在鼠标的右下角,这是图片的坐标系决定的。如果我们想让它鼠标在图片中心,必须让鼠标坐标和图片中心对齐。对于任何一个Surface对象,可以用get_width(), get_height()和gei_size()对象,来获得它的尺寸,这样我们就可以将鼠标中点和图像尺寸对齐。

当然,美中不足的是鼠标本身出现在了游戏上,可能看起来不是那么和谐,可以通过pygame.mouse.set_visible(False)来设置鼠标的可见性。把这一句加入程序就可以隐藏鼠标。

好的,我们完成了一个部分,飞机可以显示在了屏幕上并能自由移动,但是,这个移动是完全由我们移动的,那些自己移动的飞机和子弹又是怎么做到移动的呢?

我们现在知道游戏的动画本质是由一张张图的变化而来的,子弹的运动也是这样,我们需要它每一幅图比上一幅图都向前多移动一点,这样就可以实现子弹的移动。

我们用总结一下子弹的特点:

1、子弹从飞机前端射出,发射的坐标应该是鼠标所在的位置。

用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动(python编写飞机大战)

2、每一帧子弹都向前多移动一些。

3、子弹飞出屏幕底部时,不再处理该子弹。(这里我用一个技巧,让子弹重新回到鼠标所在的位置)

4、为了使子弹从飞机下面飞出去,我们需要先绘制子弹,再在上面绘制飞机。

子弹有这样三个特点,根据这三个特点,可以写出它的代码:

可以得到这样的效果:

子弹会从飞机打出,到屏幕顶端时就会重置。

上面的代码似乎是解决了子弹运动的问题,如此而来,敌机的运动也显得非常的简单。暂时不讲具体显示敌机的代码,让大家思考。

可其实有一个很容易发现的问题,那就是每一台机器的处理速度不一样,虽然每次循环时都让坐标自减一,实际上,还是有很大的差别的,处理速度快的机器可能一秒钟处理一千次循环,而处理慢的机器可能才次循环,两台机器看到的动画帧率完全不同,子弹速度也完全不同,这应该怎么处理呢?

还好pygame早就帮我们做好了这一点,我们只需要这么去做就可以让所有的机子都有同样的速度。

pygame.time模块给我们提供了一个Clock()对象,让我们轻易做到控制帧率:

clock = pygame.time.Clock()time_passed = clock.tick()time_passed = clock.tick()

第一行初始化了一个Cloc对象,第二行返回了一个从上一次到现在调用的时间(毫秒计的单位),第三行就是控制帧率的好办法了。在每一次循环过程中加上它,在clock.tick()里加入参数,代表了你设定的最大帧率,你的画面的最大帧率就是你写的值,当然,有的时候动画过于复杂,它可能没办法到达这个帧率,那时我们需要别的优化方式。那么怎么保证控制的匀速呢?

将上面的代码再一次变化:

我比较懒,直接贴了全部的代码。。。

这里面,我们每次读取了经过的时间,然后根据每次经过的时间不同,乘以速度系数来得到应该变化多少位移。用这种方法调整的动画,在不同的电脑上都有相同的显示。

敌机怎么显示,看大家怎么做了。明天继续讲,关于敌机的显示和随机性。

举例讲解Python中的死锁、可重入锁和互斥锁 一、死锁简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。1、迭代死

python 的列表遍历删除实现代码 python的列表list可以用for循环进行遍历,实际开发中发现一个问题,就是遍历的时候删除会出错,例如l=[1,2,3,4]foriinl:ifi!=4:l.remove(i)printl这几句话本来意图

Windows下为Python安装Matplotlib模块 这玩意反反复复弄了一晚上,这里详细叙述下如何安装,肯定会对大家有所帮助。首先默认大家都装了Python,这个从官网下基本不会有任何难度。(1)S

标签: python编写飞机大战

本文链接地址:https://www.jiuchutong.com/biancheng/378555.html 转载请保留说明!

上一篇:python实现将内容分行输出(python将结果写入excel)

下一篇:举例讲解Python中的死锁、可重入锁和互斥锁(python怎么理解)

  • 国税和地税的区别
  • 其他应收款是负数怎么报税
  • 个人所得税退的多好还是少好
  • 预收预付科目是否已经取消
  • 更换电脑后个税信息如何导入
  • 可供出售金融资产和长期股权投资
  • 异地经营如何纳税
  • 担保人的损失
  • 商标转让所需要的材料
  • 投资理财产品怎么选
  • 建筑业预缴税款是什么意思
  • 简易征收的项目是否可以实行30万免税
  • 赠品视同销售会计分录要如何编制?
  • 那些发票可以报
  • 租的厂房再转租怎么开票抵扣
  • 加油充值卡有优惠吗
  • 企业交税的钱用在哪里
  • 附加税水利行政事业是否取消?
  • 企业员工用自己手机发送工作
  • 小微企业资质证书
  • 案例分析关于拟建科学馆的请示报告
  • 公司修理电脑属于什么费用
  • 利润表里的营业税金及附加如何计算
  • 生产企业原材料的订购与运输建模
  • 企业转让土地使用权交什么税
  • 现金流量表的编制原则为( ),是( )的概念
  • 1697510006
  • win8操作系统
  • Laravle eloquent 多对多模型关联实例详解
  • pruttct.exe - pruttct是什么进程 有什么用
  • 服务器时间总是不对
  • 外购固定资产的税率
  • windows11怎么设置锁屏时间
  • 直接计入所有者权益的交易或事项
  • c#openxml
  • php访问数据库的方式
  • php查询sqlserver数据库
  • 超级鸽卫星
  • vue3 $bus
  • Ant Design-vue 解决input前后空格问题(推荐)
  • 增值税预征税率是多少
  • 织梦如何开启会员功能
  • 物业公司电费最多可以收多少钱一度
  • 5月份工作重点
  • 现金结算的特点和概念
  • 资产负债表中利息收入填在哪
  • 未发工资怎么办
  • 用mysql的小技巧
  • 企业所得税汇算清缴操作流程
  • 无形资产摊销是按原值吗
  • 工业企业中制造费用包括哪些内容
  • 付了电费当月没有收到发票
  • 补助资金如何做账
  • 工会经费结余可以结转下年吗
  • 自产自销属于商品吗
  • 如何审计主营业务收入的真实性问题
  • 进口关税增值税可以抵扣吗
  • 支付宝支付高速通行费如何开发票
  • 旅游饮食服务企业会计核算的特点包括
  • mysql5717安装及配置超详细教程
  • winxp系统任务栏不见了
  • centos5.8服务器
  • 怎么把操作系统转移到另一个盘
  • win7旗舰版和家庭版哪个对电脑要求低
  • dds使用方法
  • SmartFTP.exe - SmartFTP是什么进程
  • spyware.exe - spyware是什么进程
  • win7系统有自带的杀毒软件吗
  • win8桌面一直在闪
  • 在linux中使用什么命令可以给命令起别名
  • cocos-creator
  • Cocos2dx 3.2 + vs2012 + win7 改变面黑色背景的大小
  • windows批处理命令大全
  • 从零开始学什么好
  • js设计模型
  • js中的函数怎么使用
  • 安卓art set
  • 用js实现类的方法
  • 执法服务不到位
  • 金坛归属南京
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设