H5游戏引擎

白鹭引擎

Texture Merger 可以实现序列帧动画、图片字体、图片整合

1. 序列帧动画注意事项

a 动画名和导出名应该一致或固定规律,方便程序导入
b 编辑动画的中心点,设置y为0,x为站立动作的左边缘

2. Wing 里修改调试port端口号

默认是5758,通过修改文件.wing/launch.json文件修改

1
"port":5758

3. TiledMap 里面的bug

必须有这句,里面的TMXObject才会有值!!!!!! element.draw();

1
2
3
4
5
6
let mapGroups: tiled.TMXObjectGroup[] = tmxTileMap.getObjects();
for (let element of mapGroups) {
if (element.name == "obj") {
element.draw();// !!!!!!必须有这句,里面的TMXObject才会有值,这他妈是个bug!!!!!!!!
for (let i = 0; i < element.getObjectCount(); i++) {
let obj: tiled.TMXObject = element.getObjectByIndex(i);

4. addEventListener一定要和removeEventListener配对,否则后果很严重!!!

addEventListener一定要和removeEventListener配对,否则后果很严重!!!

5. =>的妙用

回调方法中this一般不能用,但使用=>这个可以很方便使用this

原来:

1
2
3
4
5
let self = this;
// 加载地图数据
this.stageMap.loadMap("resource/assets/map/stage03.tmx", function (tmxTileMap: tiled.TMXTilemap): void {
self.bm.addChild(self.stageMap);
});

现在:

1
2
3
4
// 加载地图数据
this.stageMap.loadMap("resource/assets/map/stage03.tmx", (tmxTileMap: tiled.TMXTilemap) => {
this.bm.addChild(this.stageMap);
});

6. 音乐节拍的应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/** 跳到下一个音阶所需帧数 */
public static STEP_NUM: number = 16;
// x方向基本速度
public static VX: number = 8;
/** 帧间隔时间 ms
* 128bpm的音乐,对应24.4ms
* 126bpm的音乐,对应24.8ms
* 125bpm的音乐,对应25ms
* 71bpm的音乐,对应21.6ms
* 每1bpm,对应0.2ms
* 帧间隔 = 25 - 0.2*(bpm - 125)
* 使用《格式工厂》转成mp3,44100赫兹,96比特率
* 再用《audioretoucher3》查看mp3的bpm值
*/
public static FRAME_STEP: number = 24.8;

寻路算法 PathFinding

基本用法

1
2
3
4
5
6
this.grid = new PF.Grid(this.map_h, this.map_w, this.map);
let option: PF.Option = new PF.Option();
option.allowDiagonal = true;
option.dontCrossCorners = true;
this.finder = new PF.AStarFinder(option);
let path = this.finder.findPath(this.start_y, this.start_x, this.goal_y, this.goal_x, this.grid);

H5游戏

HTML5游戏开发经验及开发工具分享

1. 自动保存用户的记录

2. 使用profiler

通过按下F12按键可以打开开发工具面板。选择”Profile”选项然后选中”Start profiling”。在你觉得性能需要提升的地方停留30秒,profiler将收集相关数据,然后选择”stop profiling”。你将看到你的游戏中的每个功能的累积执行时间。通常,你会发现某些功能占用了大部分的时间。这样你就能有针对性地优化那些特别耗时的功能了。

不要过分相信自己的直觉——有些代码可能看起来效率很低,但在某些JavaScript引擎上执行起来速度却很快。最好的办法就是时常地反复分析程序,对于修改过的代码,需要反复进行测试确保你的修改确实能够提升程序的性能。

3. fnt字体制作工具

http://www.angelcode.com/products/bmfont/