资讯专栏INFORMATION COLUMN

二、基于lufylegend引擎的魔塔游戏开发(准备工作)

PrototypeZ / 3454人阅读

摘要:准备工作图片素材角色精灵图分为四个移动方向地图素材包含精灵图和普通块图物品为普通块图人物素材包含和怪物的精灵图游戏还在开发中,怪物素材还不完整游戏初始化定义结构并引入引擎初始化为引擎中的全局函数用于初始化。

准备工作:图片素材

hero.png

角色精灵图分为四个移动方向

map.png

地图素材包含精灵图和普通块图

goods.png

物品为普通块图

chara.png

人物素材包含npc和怪物的精灵图(游戏还在开发中,怪物素材还不完整)

游戏初始化

定义dom结构并引入lufylegend引擎




  
    
    
    RPG
    
    
  

  
    
loading...

初始化

LInit(50, "mylegend", 352, 544, main);

LInit为引擎中的全局函数用于初始化。
接收的参数按照顺序分别为:fps、dom节点、宽、高、callback

执行callback并加载图片

var imgData = [{
  name: "map",
  /*地图*/
  path: "./images/map.png"
}, {
  name: "chara",
  /*人物*/
  path: "./images/chara.png"
}, {
  name: "goods",
  /*物品*/
  path: "./images/goods.png"
}, {
  name: "hero",
  /*英雄*/
  path: "./images/hero.png"
}];
function main() {
  LGlobal.align = LStageAlign.MIDDLE;
  LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
  LSystem.screen(LStage.FULL_SCREEN);
  //准备读取图片
  loadingLayer = new LoadingSample3();
  addChild(loadingLayer);
  LLoadManage.load(
    imgData,
    function (progress) {
      loadingLayer.setProgress(progress)
    },
    gameInit
  );
}

LGlobal.align为画布对其方式
LSystem.screen为缩放
LoadingSample3为加载动画的一种
LLoadManage.load进行加载并做callback
这样我们准备的素材就被加载进来了
详细介绍请查看API

//预加载完成的图片数组
var imgList = {};
//加载动画类型
var loadingLayer;
//游戏层
var layers = {
  back: null,
  mapview: null,
  things: null,
  effect: null,
  talk: null,
};
function gameInit(result) {
  removeChild(loadingLayer);
  loadingLayer = null;
  imgList = result;
  //游戏层显示初始化
  layerInit();
  //游戏场景载入
  drawInit();
  // 游戏信息展示
  drawGameInfo();
  LEvent.addEventListener(LGlobal.window, LKeyboardEvent.KEY_DOWN, playerEvent);
}
function layerInit() {
  layers.back = new LSprite();
  layers.back.graphics.drawRect(0, "#103820", [0, 0, LGlobal.width, LGlobal.height], true, "#012345");
  addChild(layers.back);
  layers.back.x = 0;
  layers.back.y = 0;
  layers.mapview = new LSprite();
  layers.back.addChild(layers.mapview);
  layers.things = new LSprite();
  layers.back.addChild(layers.things);
  layers.talk = new LSprite();
  layers.back.addChild(layers.talk);
  layers.effect = new LSprite();
  layers.effect.y = 11 * globalData.size
  layers.back.addChild(layers.effect);
}

加载完成后将加载动画移除,将返回的result存到全局变量imgList

layerInit定义游戏层,需要注意的是添加的顺序会影响当前层级的高度(类型z-index),后添加的较高

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91408.html

相关文章

  • 三、基于lufylegend引擎魔塔游戏开发(绘制第一层地图)

    摘要:和代表普通道路和墙,和代表星星和岩浆。用作裁剪接收图片对象起始坐标和裁剪区域五个参数起始坐标和裁剪区域可选用于创建图像,可以添加到游戏图层将指定尺寸按照指定行列进行裁剪,返回一个二维数组生成动画,每一行为一组动画。 绘制地图前准备 在绘制之前,我们先看一下地图的数据实现 globalData = { mapCol: 11, mapRow: 11, size: 32, f...

    Wildcard 评论0 收藏0
  • 一、基于lufylegend引擎魔塔游戏开发(设计介绍)

    摘要:使用的引擎也是第一次写游戏,主要是兴趣使然游戏体验地址未完成游戏设计游戏图层设计游戏图层分为了五层。游戏数据存储将游戏涉及的所有数据存放到一个对象中,可以在后期很方便的做游戏进度保存。其中为角色的属性信息。 使用的引擎 lufylegend也是第一次写rpg游戏,主要是兴趣使然游戏体验地址(未完成) 游戏设计 游戏图层设计 var layers = { back: null, ...

    Code4App 评论0 收藏0
  • HTML5 Canvas游戏开发实战 PDF扫描版

    摘要:游戏开发实战主要讲解使用来开发和设计各类常见游戏的思路和技巧,在介绍相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。在本书...

    cocopeak 评论0 收藏0
  • 它将是你的第大脑——长文讲述谷歌深度学习的故事

    摘要:深度学习现在被视为能够超越那些更加直接的机器学习的关键一步。的加入只是谷歌那一季一系列重大聘任之一。当下谷歌醉心于深度学习,显然是认为这将引发下一代搜索的重大突破。移动计算的出现已经迫使谷歌改变搜索引擎的本质特征。 Geoffrey Hiton说:我需要了解一下你的背景,你有理科学位吗?Hiton站在位于加利福尼亚山景城谷歌园区办公室的一块白板前,2013年他以杰出研究者身份加入这家公司。H...

    jackzou 评论0 收藏0

发表评论

0条评论

PrototypeZ

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<