java飞机大战飞机背景滚动_飞机大战>背景/音效动起来

前面的准备工作已经做完,马上开始我们的第一站吧,游戏背景和游戏音乐的实现。

4721de633a1d

bg.gif

1.为了项目结构清晰和代码规范,我们把游戏拆解为层次结构来实现,在src文件夹下新建一个目录background,这个目录的内容就是本章实现的核心.

4721de633a1d

image.png

2.在目录下新建一个类BackgroundGame并且继承egret.DisplayObjectContainer,关于该类,自行查阅API,我的理解就是对象容器显示接口,每一个显示的对象都可以看做一个小模块,然后填充到eui.UILayer容器中,用于丰富我们的容器。

3.关于项目编译过程,查看官网文档

eui.UILayer:游戏的入口类就是Main.ts类下,继承于eui.UILayer

LoadingUI:游戏加载过程的进度显示,可以根据自己游戏风格更改

ThemeAdapter:皮肤类,关于UI上面的逻辑和开发可以纯代码实现,也可以通过布局文件来实现,我比较喜欢纯代码风格,所以整个项目我都不会使用皮肤方式。

其他类都是项目自行生成,暂时没有用到,就不在多说,直接打开我们需要实现的类BackgroundGame。

每个类好像只能有一个构造方法,对于我这个java控来说有点诡异,如果有继承还需要在构造方法中实现super

class BackgroundGame extends egret.DisplayObjectContainer{

public constructor() {

super();

this.addEventListener(egret.Event.ADDED_TO_STAGE,this.loadBackground,this);

}

}

构造方法中有一行代码addEventListener,用于监听填充到容器中完成后的事件,这样可以获取到正确的容器高宽。

addEventListener第一个参数是用于监听的事件,查看官方API;第二个参数是事件回调,这里就是填充容器完毕后执行改方法;第三个参数是事件作用域(当前类)。

4.实现背景逻辑

/**

* 地图上半部分(隐藏)

*/

private mBackgroundTop:egret.Bitmap;

/**

* 地图显示部分

*/

private mBackgroundBottom:egret.Bitmap;

/**

* 屏幕的高度

*/

private stageH:number;

/**

* 地图滚动速度,越小滚动越快。毫秒

*/

private mBgSpeed = 4000;

实现回调方法loadBackground:

public loadBackground() : void{

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值