1. 开发微信小游戏用5.12及以上版本
2. egret 游戏项目和 egret eui项目 可以发布为微信小游戏
3. 项目--选择完--发布--微信小游戏--填写appid(也可以不填,引擎内置公用appid,但无法正式发布),填写项目名称--默认发布--确认--在项目同级目录出现一个文件夹
4. 实时预览: 在项目目录执行 egret run 会打开微信开发者工具,要先扫码登录,修改代码后执行 egret build 就可以在微信开发者工具实时查看效果,发布的话用 egret publish 命令,然后微信开发者工具就可以提交
5. 微信接口调用: src目录下的platform.ts文件下调用
6. 命令行发布不同平台版本:(好像要在引擎上配置才能生效)
egret publish --target web (发布的是web版本 )
egret publish --target wxgame (发布微信版本)
7. 白鹭书籍《HTML5游戏开发技术》笔记:
该书源码:www.waterpub.com.cn/softdown/
www.wsbookshow.com/bookshow/jc/gzgz/cxsjl/12843.html
白鹭官网: www.egret.com/downloads/engine.html
8. 小游戏不支持 showall 的缩放模式,所以推荐使用 fixedNarrow 模式
9. this.addChild 是egret引擎操作显示列表最常用的一个方法(可以将某个显示对象添加到显示容器上)
========================================================
10 . 将exml文件与ts文件关联:
<?xml version="1.0" encoding="utf-8"?>
<e:Skin class="MainSkin" width="480" height="800" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing"> //class名字和下面ts文件中的skinName一致就行
<e:Button id="btn_login" label="登录" bottom="482" horizontalCenter="0"/>
<e:Label id="label_name" text="用户:" x="79" y="108"/>
<e:TextInput id="input_name" width="228" height="35" x="174" y="105.5" anchorOffsetX="0" anchorOffsetY="0"/>
<e:Label id="label_pwd" text="密码:" x="79" y="167"/>
<e:TextInput id="input_pwd" width="228" height="35" x="174" y="164.5" anchorOffsetX="0" anchorOffsetY="0"/>
<e:Button id="btn_reg" label="注册" y="350" horizontalCenter="0"/>
</e:Skin>
// TypeScript file
class MainView extends eui.Component {
public constructor(){
super();
this.skinName = "MainSkin"; //这里的值要和exml文件的源码的 class 的名字一致就是关联
}
}
11. RES资源管理模块共含有三种资源获取方式:
- RES.getRes(name:string):any //常用
同步获取资源 这种方式只能获取已经缓存过的资源,例如之前调用过loadGroup()被预加载的资源。
- RES.getResAsync(name:string,compFunc:Function,thisObject:any):void
异步获取资源,这种方式可以获取配置中含有的所有资源项。如果缓存中存在,直接调用回调函数返回,若不存在,就启动网络加载文件 并解析后回调。
- RES.getResByUrl(url:string,compFunc:Function,thisObject:any,type:string=””):void
通过url获取不在配置中的资源,通常不建议使用这个接口,只有那些不合适填写在配置中,比如获取网络上其他服务器的资源时,才采用这种方式
12. eui.Component 类定义可设置外观的组件的基类。Component 类所使用的外观通常是 Skin 类的子类
13. eui.Image 控件允许您在运行时显示 JPEG、PNG 等图片文件文件
14. 实现粒子效果:
下载 egret feather -- 点击雪花修改图片(如花瓣)-- 改属性 -- 选择文件 -- 导出 (导到resource/assets路径下)-- 引入 粒子动画库 (在git 下: https://github.com/egret-labs/egret-game-library 不过这个库只有最新版本,另外一个网址:http://bbs.egret.com/thread-24868-1-1.html 这个有多个版本) -- 选择对应版本,把粒子库particle放置在和整个项目的同一级的目录里面(并列关系)--修改 egretProperties.json 文件
"modules": [
{
"name": "egret"
},
{
"name": "eui"
},
{
"name": "assetsmanager"
},
{
"name": "tween"
},
{
"name": "promise"
},
{ // 在这里加
"name": "particle",
"path": "../particle/libsrc"
}
]
-- 按f5编译就可以看到粒子库被引进来
15. egret info 查询安装的egret的版本信息
=================================
腾讯课堂_成语大挑战_听课笔记
1. 音频管理是一个游戏中非常重要的一块
2. 要发布微信小游戏的话: 打开egretwing-文件-新建项目-项目类型选择EUI项目-缩放模式选择fixedNarrow-创建 (舞台640*1136)
3. 游戏的资源都放在 resource 目录中,自己项目所需的资源可以放在 resource/assets/data 路劲下
4. src 目录是我们的源文件目录,在src 新建game目录,本游戏相关的ts文件放在game目录里面,新建模板文件-新建EUI组件会生成ts文件和对应的皮肤文件,我们可以把对应的皮肤文件生成在 resource/game 目录下
5. 皮肤文件中图片直接拖动,按钮之类要拖动 控件,然后给他们配置皮肤快捷模板(也是拖动图片进入)
6. 给按钮设置事件,先设置id(命名可以这样btn_begin),在按钮上面点击复制定义,然后到对应的ts文件中
class SceneBegin extends eui.Component implements eui.UIComponent {
public btn_begin:eui.Button; // 这就是张贴的那两行
public btn_setting:eui.Button;
...
// 组件加载完毕之后调用该函数
protected childrenCreated():void
{
super.childrenCreated();
this.init();
}
private init(){
SoundManager.getInstance(); //这是调用音频的类
this.btn_begin.addEventListener(egret.TouchEvent.TOUCH_TAP,this.begin_tap,this); //绑定点击事件写在这里
this.btn_setting.addEventListener(egret.TouchEvent.TOUCH_TAP,this.setting_tap,this);
}
...
7. 弹出层也要新建一个另外的eui组件(方法和上面类似)
8. 在game新建一个SoundManager.ts 文件(只需要管理音乐的,这种就没必要要新建EUI组件啦,不需要皮肤文件)
9. 在egret中播放音乐用的是 Sound 类,控制音乐播放是通过 SoundChannel 类
10. 加载音乐的文档: http://developer.egret.com/cn/github/egret-docs/Engine2D/multimedia/audio/index.html
11. 单例模式: 只有一个实例,并提供全局访问。(ts中通过static这个静态修饰符去实现)
12. 关卡界面好多关,页面可以滚动,所以比较特别,新建 eui组件(类似以上),(组件-布局)拖动 Scroller 这个组件,因为关卡界面需要读取数据有多少关,所以不能写死,弄好 scroll组件这些就行了
13. exml中组件层级在下面的比在上面的大
14. 滚动视图的使用文档: http://developer.egret.com/cn/github/egret-docs/extension/EUI/container/scroller/index.html
15. 禁止页面水平方向滚动:
/**
* 创建场景界面
* Create scene interface
*/
protected createGameScene(): void {
var group = new eui.Group();
var img = new eui.Image("resource/assets/bg.jpg");
group.addChild(img);
//创建一个Scroller
var myScroller = new eui.Scroller();
//注意位置和尺寸的设置是在Scroller上面,而不是容器上面
myScroller.width = 640;
myScroller.height = 1136;
//设置viewport
// myScroller.addChild(group);
myScroller.viewport = group;
this.addChild(myScroller);
myScroller.scrollPolicyH = eui.ScrollPolicy.OFF; //这一句是禁止页面水平方向滚动
group.scrollV = group.height;
}
16.关卡界面需要 先读取有多少关 ,新建 关卡数据管理类 ts
17. 一个ts文件就叫一个组件,关卡的那个按钮也要单独新建一个组件
18. (看到43-31)