images/default2.jpg

Flutter 国际化: 多语言处理(Easy localization)

Wednesday, Apr 22, 2020

语言不互通是困扰了人类几千年的大难题🤐. 许多国外优秀的文学作品、 APP因为没有进行多国语言的处理, 导致发展缓慢甚至停滞. 虽然现在的各大翻译软件已经非常强大了. 但是想象一下: 一个用户一边拿着翻译机一边使用某个软件. 这样恐怕会逼疯用户, 可能会很快的放弃😭😭. 如果你的APP有相当一部分用户是来自全球各地, 那么对APP的国际化就是刚需💪. 对APP的国际化可以直线提升外国友人用户体验, 顺便会提高你的APP的"逼格", 用最简单的方式给用户一种"你们的APP很大很强"的感觉😏😏😏. 最终效果 老规矩, 有图有真相. 先来看看我们最终会实现的效果: 需求 在做一个事情之前, 我们先来简单的规划一下, 我们的目标是什么, 我们要怎么做: 提供多种语言处理, 对每部分文本进行单独的翻译. 用户可以随时切换语言 开始 第一步: 创建Flutter APP 这一步不再赘述, 相当基础的东西啦! 第二步: 清理项目 删除测试目录 删除./lib/test目录, 因为我们暂时用不上. 清理main.dart 因为新的Flutter项目中的main会给我们很多用不上的代码, 所以进行替换./lib/main.dart为: import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter 国际化: 多语言处理', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Hi, 国际化!
2 minute read
images/default1.jpg

Flutter 游戏开发(flame) 05 收尾和打包(5/5)

Sunday, Apr 19, 2020

完成一个项目是世界上最爽的感觉之一. 你呕心沥血的做某件事, 最终想法变成了现实. 最后, 欢迎来到本系列的终章. 当然, 只有你一步一步跟随阿航的教程, 终章才有意义. 如果你还没有看过之前的章节, 还请你循序渐进, “一章一个脚印”! 下面是我们本系列教程的文章目录: Flutter 游戏开发(flame) Flame介绍 Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5) Flutter 游戏开发(flame) 02 图形和动画(2/5) Flutter 游戏开发(flame) 03 界面和弹窗(3/5) Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5) Flutter 游戏开发(flame) 05 收尾和打包(5/5) 本章 需具备的条件 本系列教程之前的全部要求👈 更多的资源包 – 本教程提供了资源包, 但你也可以使用自己的. 推荐资源网站Open Game Art . 我们将使用与前一部分相同的编码规范👩‍🏫 最终的资源包 这个最后的资源仅有一个图像, 但是它有5种不同的尺寸. 当游戏安装在设备上时, 图像将作为玩家APP目录的启动图标. <img src="images/01-1.jpg" alt=""> 点击图片或者此链接下载资源包! 🔴 注意: 如果你遵循本教程, 则可以使用上述资源包. 本资源包是Github上Langaw(原作者) 项目的一部分, 该项目获得CC-BY-NC-ND许可证的许可. 这意味着您可以共享、复制或者重新分发资源. 你必须在感谢中提到, 提供许可证的链接, 并标明你是否进行了更改. 你不得将资源用于商业目的. 如果混合, 转换或者构建资源, 则不能分发修改后的资源.
5 minute read
images/default1.jpg

Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5)

Friday, Apr 17, 2020

引言 曾想过开发一款自己的电子游戏吗? 来对地方了. 本系列教程就是教你如何开发一个属于自己的2D休闲游戏. 本教程是第一章 的延续, 是针对任何水平的指南. 在这一章我们将会做一个"打鸟"类型的游戏. 这个游戏起名为"Langaw", 翻译过来就是"小飞蝇". 玩家的任务就是在小飞蝇到达垃圾堆前尽可能的多消灭小飞蝇(阿航在这里不得不吐槽下原作者, 我们为啥要保护垃圾啊真是的😒). 玩家只需要在屏幕上简单的点击就可实现击杀的效果(别用榔头砸手机🤣).这一章中, 我们暂时不会渲染图片, 所以暂时将小飞蝇展示为绿色方块, 当击中小飞蝇后, 变为红色方块并坠落至屏幕底部. 你可以在文章底部查看效果视频. 下面是我们本系列教程的文章目录: Flutter 游戏开发(flame) Flame介绍 Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5) 本章 Flutter 游戏开发(flame) 02 图形和动画(2/5) Flutter 游戏开发(flame) 03 界面和弹窗(3/5) Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5) Flutter 游戏开发(flame) 05 收尾和打包(5/5) 需具备的条件 如果你完整的学习了第一章 , 那么你应该已经准备好进行开发了🤩. 以防万一, 在这里重复一下: 本文将假设您已是一名有一定经验的开发人员, 且拥有了"程序员思维". 如果你是小白, 没关系! 本篇教程非常入门. 只要兴趣足够, 你也将成为一名"游戏开发者"✌✌. 你也需要一个配置足够的电脑, 可以运行IDE、编译并运行Android模拟器. 如果你的电脑配置不够高, 你也可以直接连接Android手机, 在真机上运行和调试. Flutter可以同时构建Android和IOS APP. 本文将围绕Android进行开发. 开发完成后, 你可以运行不同的build, 使你也可以在IOS上玩游戏. 要顺利阅读本文, 假定您已经具备以下条件👇:
6 minute read
images/default1.jpg

Flutter 游戏开发(flame) 02 图形和动画(2/5)

Friday, Apr 17, 2020

引言 在本系列教程的这一章, 我们将会把重心放在图形和动画上. 我们在上一章《开发2D休闲游戏:消灭小飞蝇》 中创建了一款拥有交互的休闲手游. 游戏的核心不变, 但是我们需要为其增加更多的位移和更好的图像. 下面是我们本系列教程的文章目录: Flutter 游戏开发(flame) Flame介绍 Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5) Flutter 游戏开发(flame) 02 图形和动画(2/5) 本章 Flutter 游戏开发(flame) 03 界面和弹窗(3/5) Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5) Flutter 游戏开发(flame) 05 收尾和打包(5/5) 需具备的条件 本系列教程第一部分 的全部要求. 图像资源文件- 图像资源可在网上的游戏资源网站找到(比如Open Game Art ), 但是要确保感谢原作者. 代码的规则和此前的章节一致. 图像资源 正如你在上一章中看到的上图, 我们实际上已经为小飞蝇准备好了图像资源. 这是一张来自于Open Game Art的小飞蝇图片 . 它被授权为CC0意思是可用于公共域, 也就是随便用. 但是我们不会用上面的那个, 而是用这些: 点击下载 🔴 注意: 如果你遵循本教程, 则可以使用上述资源包. 本资源包是Github上Langaw(原作者) 项目的一部分, 该项目获得CC-BY-NC-ND许可证的许可. 这意味着您可以共享、复制或者重新分发资源. 你必须在感谢中提到, 提供许可证的链接, 并标明你是否进行了更改. 你不得将资源用于商业目的. 如果混合, 转换或者构建资源, 则不能分发修改后的资源. 你不得应用法律条款或技术措施, 在法律上限制他人做许可证允许的任何事情.
7 minute read
images/default1.jpg

Flutter 游戏开发(flame) 03 界面和弹窗(3/5)

Friday, Apr 17, 2020

引言 我们在这一章将为游戏编写不同的屏幕(界面)和对话框. 下面是我们本系列教程的文章目录: Flutter 游戏开发(flame) Flame介绍 Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5) Flutter 游戏开发(flame) 02 图形和动画(2/5) Flutter 游戏开发(flame) 03 界面和弹窗(3/5) 本章 Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5) Flutter 游戏开发(flame) 05 收尾和打包(5/5) 需具备的条件 本系列教程之前的全部要求👈 更多的资源包 - 本教程提供了资源包, 但你也可以使用自己的. 推荐资源网站Open Game Art . 我们将使用与前一部分相同的编码规范👩‍🏫 如果你还没有阅读以前的部分, 你最好回顾下! 从第一章 开始. 👉在Github 或码云 上查看本章的代码. 新资源包 我们将使用此资源包, 其中包含游戏所需的第二组图片资源. <strong>点击下载资源包</strong> 🔴 注意: 如果你遵循本教程, 则可以使用上述资源包. 本资源包是Github上Langaw(原作者) 项目的一部分, 该项目获得CC-BY-NC-ND许可证的许可. 这意味着您可以共享、复制或者重新分发资源. 你必须在感谢中提到, 提供许可证的链接, 并标明你是否进行了更改. 你不得将资源用于商业目的. 如果混合, 转换或者构建资源, 则不能分发修改后的资源. 你不得应用法律条款或技术措施, 在法律上限制他人做许可证允许的任何事情. 点击此处了解有关 CC-BY-NC-ND 许可证的更多信息 阿航在这里提醒: 目前国内的版权保护做的不够好.
10 minute read
images/default2.jpg

Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5)

Friday, Apr 17, 2020

引言 分数和高分记录是任何游戏中不可或缺的一部分. 有些游戏根据收集的金币数量计算得分, 有些基于杀敌数, 有些则基于存活时间. 同样不能忽视音效和BGM(背景音乐). 加上它们, 游戏将会蜕变🦋. 如果一个游戏无声, 它就是不完整的. 欢迎来到Flutter+Flame系列的第四章. 如果你还没有读过之前的章节, 建议你先阅读一下哦!🤭 🔴 注意: 本教程的背景音乐有些过时. 你可以先学本章教程, 之后再替换为这篇教程 下面是我们本系列教程的文章目录: Flutter 游戏开发(flame) Flame介绍 Flutter 游戏开发(flame) 01 开发2D休闲游戏:消灭小飞蝇(1/5) Flutter 游戏开发(flame) 02 图形和动画(2/5) Flutter 游戏开发(flame) 03 界面和弹窗(3/5) Flutter 游戏开发(flame) 04 分数, 存档和音效(4/5) 本章 Flutter 游戏开发(flame) 05 收尾和打包(5/5) 需具备的条件 本系列教程之前的全部要求👈 更多的资源包 – 本教程提供了资源包, 但你也可以使用自己的. 推荐资源网站Open Game Art . 音效和音乐资源 - 这些也可以在游戏资源网站上找到, 比如Open Game Art . 还有专门的音频资源比如BenSound.com . 同样, 你必须查看许可并在游戏中表示感谢. 我们将使用与前一部分相同的编码规范👩‍🏫 👉在Github 或码云 上查看本章全部代码 新的资源包 这一部分中, 我们需要另一个资源包, 包含额外的图形、背景音乐和一些音效.
11 minute read
images/default1.jpg

Flutter 游戏开发(flame) 00 Flame介绍

Thursday, Apr 16, 2020

如果你对Flutter有一定的了解, 那么应该知道它可以同时转为Android、IOS APP. 并且会在后续的版本支持Web、Mac以及Windows设备. 那么, 用Flutter开发游戏似乎是一件很棒的事情😝😝. 我在《Flutter可以开发游戏啦! Flame游戏开发框架测评 》中简单的对Flutter的Flame框架进行了测评. 有些朋友希望进一步在Flutter上发展, 并且创建属于自己的游戏. 若你是这一类人, 那么本博客应该是你不错的选择. 本教程将会把重心放在概念上, 而不是立刻制作一个精美、可上线的游戏. 如果对博客有任何问题, 欢迎在下方留言, 阿航会尽力、尽快回复🙂. 开发环境 本博客的环境一览: 环境 版本号 Flutter 1.14.6 beta Dart 2.8.0-dev.5.0 Android Studio 3.5.2 🔴注意: 检查你的环境和文中的差异, 以避免出现不兼容的情况 需具备的条件 本文将假设您已是一名有一定经验的开发人员, 且拥有了"程序员思维". 如果你是小白, 没关系! 本篇教程非常入门. 只要兴趣足够, 你也将成为一名"游戏开发者". 你也需要一个配置足够的电脑, 可以运行IDE、编译并运行Android模拟器. 如果你的电脑配置不够高, 你也可以直接连接Android手机, 在真机上运行和调试. Flutter可以同时构建Android和IOS APP. 本文将围绕Android进行开发. 开发完成后, 你可以运行不同的build, 使你也可以在IOS上玩游戏. 要顺利阅读本文, 假定您已经具备以下条件: IDE (Android Studio 或者 Microsoft Visual Studio), 以及其所需的Flutter和dart插件 Android SDK. 这是开发Android应用的必备条件. Flutter SDK. 本篇将使用Flutter以及Flame进行游戏开发. 请阅读Flutter官方文档 , 完成圈内的教程 条件3: 完成Flutter官方文档中的前三步
4 minute read
images/default3.jpg

Flutter可以开发游戏啦! Flame游戏开发框架测评

Wednesday, Apr 15, 2020

Flutter作为近年来的新兴混合开发语言, 一直备受关注. 既然Flutter这么好用, 并且宣传渲染帧率可高达60fps. 那我们是不是可以用它开发游戏呢? 答案是肯定的, 某个Flutter大神制作了一款框架, 名为Flame. 如果你没有代码基础, 想开发一款自己的游戏, 那么Flutter + Flame也许是比较好的选择. 先来看一下使用Flutter + Flame做的几款游戏吧: DarknessDungeon 地牢游戏 4 in A Row 四子棋益智游戏 嗯…看起来还不错 阿航在之前的空闲时间也使用了该框架进行了游戏开发, 体验还不错. 这个是游戏大体的框架结构: 使用Flame开发游戏, 只需要先创建Game loop(游戏循环/游戏场景), 维护好update函数(计算各种数值)以及render函数(渲染屏幕). 在这里贴出一个Flutter开发与其他游戏开发引擎的对比: Flutter + Flame Unity、虚幻等主流开发引擎 适合独立开发 很适合 适合 需要掌握的技术 仅Flutter 开发语言+软件使用 学习难度 容易 中等甚至困难 开发难度 容易 中等甚至困难 国内文档支持 较少, 阿航的技术小站将会提供中文文档 丰富 3d支持 暂无 3d支持很好 开发大型游戏 适合 非常适合 开发小型游戏 非常适合 适合 我已经在博客里写了这个框架的教程以及实例教学! 立即访问《Flutter 游戏开发(flame) 01 初识Flame 》开始学习! 对文章有任何问题、 建议, 欢迎在评论区下方评论.
1 minute read
images/default3.jpg

Docker 安装 MySQL

Monday, Apr 13, 2020

本文为 docker 安装 mysql 容器的完整详细教程. 若图片展示异常, 请访问我的官方博客 准备工作 开发环境 本博客的环境一览: 环境 版本号 docker 1.13.1 注意您的环境和文中的差异, 避免出现不兼容的情况哦! 需具备的条件 要顺利阅读本文, 假定您已经掌握了以下知识: docker环境已正常安装 掌握基本的终端命令 实战开始 查询所有的mysql镜像 docker search mysql 选择并拉取你想要的镜像(这里拿官方的mysql8进行举例) docker pull mysql:8.0 查询已下载的MySQL镜像 docker images |grep mysql 使用镜像创建容器 docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 解析: -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。 -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的/etc/mysql/my.cnf。 -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。 -v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。 查看容器运行情况 docker ps 优雅关闭 docker stop [容器id] 启动已停止的容器 docker start [容器id] 重启容器 docker restart [容器id] 大功告成 通过以上的一些步骤, 我们完成了Dokcer安装Mysql的目标, 是不是很简单?
1 minute read