使用OpenHarmony的ets语言来编写一个简单的飞机大战小游戏
闲来无事,想使用OpenHarmony开发个小游戏试试,曾试过使用canvas来绘制,后发现该组件的使用不是很灵活(或许是自己能力不够),所以本工程全部使用最基本组件配合@State来实现
创建工程
打开DevEcoStudioForOpenHarmony编译器,创建一个OpenHarmony工程,选择第一项,点击next
编写自己的项目名称,存放地址,开发语言等信息,我这里给项目起名叫 “OpenHarmonyForGame”,开发语言选择 ets,然后点击 Finish
网上找了初步找了几张素材,先给他放进去
画敌机,并让敌机飞起来
开始整理思路,由于游戏,是一个不断变化的画面,所以需要一个永久定时器用来更新ui界面,而在ets的设立理念中,只有标注了@State的值发生改变时,ui相对应的组件才会发生改变,根据这一思路,就有了下面的基本代码逻辑
先在组件创建时,定义一个定时器,每隔10毫秒改变一次i的值,而Text组加你又引用了i的值,故连带后面的onDraw方法一起被调用,这样的话,onDraw方法就会不停的去执行,接下来我们开始定义一些最基本的变量
先来测试下吧,每隔500毫秒就往屏幕上添加一个敌机,位置为随机数
嗯,还行,敌机是可以画出来了,接下来就是让敌机动起来了,由于敌机是自上而下移动的,所以我们需要实时去改变每个敌机的y轴的位置
代码解释:首先设置一个延迟器,定时添加一辆敌机,敌机的x坐标的位置是屏幕宽度范围内的随机数,y坐标的位置是负的敌机大小的位置,为啥是负数嘞,由于屏幕最上角的坐标是 (0,0),如果直接设置0 的话,飞机会凭空蹦出来,如果是如数的话,看起来就像是从屏幕外面飞进来的了。 飞机添加完成之后,继续循环飞机数组,改变每个飞机y坐标,让他不算增大,这样的话,飞机就能飞起来啦,效果如下图
本集就先到这里啦,下集我们开始画自己的飞机