使用Flutter开发一个仿微信飞机大战游戏

1 篇文章 0 订阅
1 篇文章 0 订阅

为什么使用Flutter

Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。(摘自百度百科)

个人最看重的Flutter几个优点是跨平台,运行效率高,开发效率高。

  • Flutter支持开发安卓,ios移动客户端软件,支持开发web,支持开发windows,macOS,Linux等桌面软件。
  • Flutter在Android上会编译为原生二进制so库,运行效率高。没有像RN或weex那样将javascript解释执行的过程。
  • 开发时支持热重载,代码保存后,1秒内即可在手机端预览到修改后的效果,非常高效,再也不用改一行代码,编译两分钟等着看效果了。

基于Flutter以上几个优点,Flutter能够解决我工作开发过程中的一些痛点问题,开发效率低,完整构建项目耗时长(项目已进行了模块化,新功能构建时间可以接受,但是老代码未完全模块化,完整构建非常耗时),项目展示股票行情数据,涉及到非常多界面元素的频繁更新,已进行了多方面的优化,但是在几年前的低端机上体验还需要优化,相信Flutter能带来更好的性能表现。

本人目前也在学习摸索中,用Flutter写一个游戏练练手。

项目github地址:

https://github.com/chenyuebo/FlutterWechatPlaneFightGame

项目目前还存在诸多问题,欢迎大家批评指正,大家一起进步提高。

运行截图

在这里插入图片描述

游戏实现

游戏主循环使用定时器Timer实现。

定义了Sprite类,即精灵类,游戏中的飞机、子弹、奖励道具等都是继承自该类,我们通过moveTo()、move()等方法控制精灵的位置,通过update()更新sprite的状态,通过getRenderWidget()返回对应的视图widget,利用Flutter对widget高效的管理,绘图没有采用自绘的方式,而是直接使用了Flutter中的Widget,在游戏中通过不停的改变widget的位置模拟出运动的情况。精灵类及其子类继承如下所示:

在这里插入图片描述
注:
游戏实现参考了:https://github.com/iSpring/GamePlane

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值