Egret学习笔记 (Egret打飞机-4.添加主角飞机和实现飞行效果)
今天继续写点击了开始之后,添加一个飞机到场景中,然后这个飞机的尾巴还在冒火的那种感觉

先拆解一下步骤
1.首先完成飞机容器的图片加载
2.然后把容器添加到场景中
3.然后实现动画
*
-首先,我们新建一个TypeScript的类叫做HeroObject,英雄对象,哈哈,我命名水平不怎么高。然后继承自egret.DisplayObjectContainer
class HeroObject extends egret.DisplayObjectContainer {
_textures: egret.Texture[] = [];
_hero: egret.Bitmap;
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, () => {
this._textures[0] = RES.getRes("hero1_png");
this._textures[1] = RES.getRes("hero2_png");
this._hero = new egret.Bitmap();
this._hero.texture = this._textures[0];
this.width = 100;
this.height = 122;
this.addChild(this._hero)
}, this)
}
变量_textures是用来保存两张贴图,在ADDED_TO_STAGE里面,加载两张图到_texture数组里面,然后new一个图片对象。再设置当前容器的宽高,这里的宽高我们用飞机的图片的宽高就行了,然后把图片装到当前容器里面
-然后把编写好的飞机对象添加到Main的场景里面去
//移除开始界面,然后加入其它的GameObject
this.removeChild(this.beginScene);
//开始加入Hero
this._Hero = new HeroObject();
this._Hero.Fly(100, 100)
this.addChildAt(this._Hero, 10)
上边这段代码是处理 点击开始 的点击事件,然后从Main场景中移除开始界面,并且添加飞机到界面上。
这时候,飞机就出现在Main场景的左上角了,但是上面的GIF图片是飞机的后边在喷气,看起来飞机像是在动一样,那这是怎么做到呢?
看到ADDED_TO_STAGE方法里面的加载了两张图,有机智的小伙伴肯定会想到是不是切换图片?没错,就是切换图片的视觉效果,才让飞机看起来像是在喷气飞一样。
我们先分析一下,Egret的Index.html里面的div中的data-frame-rate属性,默认是30,从官方文档中知道,egret默认是每秒30帧,我理解的意思是在理想的环境下面,每秒刷新界面30次(我也是半吊子,说错了请大家指正一下)
然后我们两张图,我们就让它大致每秒切换两次算了
_tag: number = 0;
public frame(e: egret.Event) {
if (this._tag >= 30) this._tag = 0;
if (this._tag >= 15) {
this._hero.texture = this._textures[0];
}
else {
this._hero.texture = this._textures[1];
}
this._tag += 1;
}
我的思路是先放一个tag计数器,每一帧,加1个数,然后小于15的话,就把第一张图给飞机显示,大于15的话,就给第二张图显示。这样大致就做到了运行起来,上边的gif图的效果了。。。(据说还有更好的实现方式,但是我也是新手,以后再说吧,先实现,再考虑优化的问题)
Egret学习笔记 (Egret打飞机-4.添加主角飞机和实现飞行效果)的更多相关文章
- Egret学习笔记 (Egret打飞机-5.实现子弹对象)
上一章把飞机添加到屏幕上,但是飞机要发射子弹对吧?那么这一章我们就来实现一下发射子弹,并实现一个简单的子弹对象池 先来捋一捋思路 1.创建一个子弹对象 2.然后添加一个bitmap,显示子弹贴图 3. ...
- Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
有了子弹,总得有敌人来打吧,不然游戏有啥意思呢?今天我们来实现敌机从屏幕上边往下飞 参考微信打飞机游戏里面,敌机分为3种 1是特小飞机,2是小飞机,还有一种就是大飞机 面向对象编程提倡抽象,实现代码复 ...
- Egret学习笔记 (Egret打飞机-3.实现背景循环滚动)
游戏背景里面的猪脚飞机看起来是一直在向前飞,但是实际上只是一个视觉差而已. 猪脚是出于不动的状态,背景从上到下滚动,然后让玩家觉得飞机在不停的往前飞.(当然这只是其中一种实现思路) 差不多就是这样,然 ...
- Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)
运行起来,虽然主角飞机和敌机都在互相发射子弹,但是子弹打中了就和没打中效果是一样的.. 这一章我们就来处理子弹和飞机的碰撞问题. 我们所有的操作都是基于Main这个容器来做的.所以我就把这个处理放到M ...
- Egret学习笔记 (Egret打飞机-8.敌机和主角飞机发射子弹)
经过前面几章的准备,我们差不多已经具备了一个基本的框架,这一章我们就开始添砖加瓦了. 敌机定时发射一个子弹,子弹的方向是从上到下,但是发射子弹的代码应该放在哪儿呢? 从面向对象编程的思想来说,子弹是敌 ...
- Egret学习笔记 (Egret打飞机-7.实现敌机工厂)
在游戏过程之,敌机是源源不断的冲屏幕上方往下飞,如果我们每一架敌机都直接new的话,在飞机很多的情况下,也许有性能问题. 就像前面子弹对象池一样,我们也要实现一个飞机对象池,也就是标题说的敌机工厂(之 ...
- Egret学习笔记 (Egret打飞机-2.开始游戏)
打开 Egret Wing,新建一个Egret游戏项目,然后删掉默认生成的createGameScene方法里面的东西 然后新建一个BeginScene.ts的文件,作为我们的游戏的第一个场景 cla ...
- Egret学习笔记 (Egret打飞机-1.大致思路)
大致看了一遍Egret的官方文档,就开始打算使用Egret来开发一个打飞机游戏. 首先来捋一捋思路,先来看一看一个打飞机游戏的图片 基本上一个打飞机游戏分为 开始游戏 ----------进入游戏 ...
- bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...
随机推荐
- JavaScript String(字符串对象)
String 对字符串的支持 String.charAt( n ) 返回字符串中的第n个字符 n 是下标 String.charCodeAt( ) 返回字符串中的第n个字符的代码 String.con ...
- centos 如何关闭防火墙?
1 查看防火墙状态: 命令: /etc/init.d/iptables status 如果是开着显示内容类是截图 2 临时关闭防火墙: 命令:/etc/init.d/iptables stop ...
- 【转】globk中的卫星轨道约束
在globk中使用轨道随机参数很灵活,允许对每一期测量的每个卫星的每个轨道根数使用不同的马尔科夫约束.但是困难的是如何选择有效客观的约束级别.通常是选择不同的值进行实验以得到理想值.下面是三种不同的约 ...
- Netty 编解码技术 数据通信和心跳监控案例
Netty 编解码技术 数据通信和心跳监控案例 多台服务器之间在进行跨进程服务调用时,需要使用特定的编解码技术,对需要进行网络传输的对象做编码和解码操作,以便完成远程调用.Netty提供了完善,易扩展 ...
- pat 1022 digital library
#include <iostream> #include <sstream> #include <string> #include <vector> # ...
- mysql(4)—— 表连接查询与where后使用子查询的性能分析。
子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...
- 动态库Link error 一种可能
一般出现link error都是链接时找不到对应函数. 前些天出现这种错误,我反复地检查,都发现动态库里明确的是有对应函数的. 代码里有这样一句#pragma comment(lib,"li ...
- CSS核心内容之浮动
1.浮动涉及到左浮动,右浮动,清除浮动. 2.浮点的特点: 1.向指定的方向浮动,并且让出空间 2.如果后面的元素也是浮动的,那么后面的元素就会在碰到前面的浮动的元素或者边框时,就定位在那里 3.如果 ...
- CSS选择器之通配符选择器和多元素选择器
1.通配符选择器 如果希望所有的元素都符合某一种样式,可以使用通配符选择器. 基本语法: *{margin:0; padding:0} 可以让所有的html元素的外边距和内边距都默认为0. 写一段ht ...
- 关于document.body.scrollTop与documentElement.scrollTop
遇到document.body.scrollTop值为0的问题 今天在写一个小demo的时候,使用滚动条,我用document.body.scrollTop获取滚动条的位置,但是很奇怪的发现在谷歌上获 ...