当我们进入游戏时,是不可能看到所有的图像的,很多图像都是随着游戏功能的打开而出现,

比如只有我打开了“宝石”菜单才会显示宝石的图像,如果是需要显示的时候才加载,

会对用户体验大打折扣,假如用户的手机信号不太好,那么点击菜单将一片空白,

这不是我们希望的效果,只有一种情况是临时加载,就是不可预见的图像,比如排行榜,

我并不知道我刷新一下排行榜会有哪些人会排到前10名,那么只有通过临时加载这些人的头像才能正确显示,

这在后续的教程中会讲解,其余游戏本身的图像都是可预见的,我们通过运用游戏载入读条的类,一次性将素材全部加载,并显示Loading效果。

定义全局图像数组,存入要加载的图像:

var loadData = [
{name: "bbtn", path: "images/bbtn.png"},
{name: "bg", path: "images/bg.jpg"},
{name: "gongjili", path: "images/gongjili.png"},
{name: "gwhps", path: "images/gwhps.png"},
{name: "gwhpsbg", path: "images/gwhpsbg.png"},
{name: "headborder", path: "images/headborder.png"},
{name: "jinbi", path: "images/jinbi.png"},
{name: "rbtn", path: "images/rbtn.png"},
{name: "userinfo", path: "images/userinfo.png"},
{name: "zuanshi", path: "images/zuanshi.png"},
];

官方一共提供7种加载效果,LoadingSample1至LoadingSample7,也可以自己写一个读条类,官方API文档:

http://www.lufylegend.com/api/zh_CN/out/classes/LLoadManage.html

将教程(三)中main方法的加载图像方法删除 用读条类加载,实例化一个读条类,

function main() {
//游戏全屏显示,自适应屏幕
LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
LSystem.screen(LStage.FULL_SCREEN);
//居中
LGlobal.align = LStageAlign.TOP_MIDDLE; //加载Loading类读取图片,这里注意:loadingLayer是全局变量 并没有用var关键字声明
loadingLayer = new LoadingSample5();
addChild(loadingLayer);
LLoadManage.load(loadData, function (progress) {
loadingLayer.setProgress(progress);
}, gameInit);
}

其中gameInit  代表加载完毕后要执行的方法,图象加载完毕后,我们定义1个gameInit  方法来显示背景图片,

function gameInit(result) {

    //将图像集结果赋值给数组并移除读条界面
loadData = result;
removeChild(loadingLayer);
loadingLayer = null; //新建一个背景层,添加到Canvas画布
BGDiv = new LSprite();
addChild(BGDiv); //将图像信息从数组中取出赋值给图像数据变量
var bitmapData = new LBitmapData(loadData["bg"]);
//将图像信息赋值给一个图像
var bgmapimg = new LBitmap(bitmapData);
//添加图像到背景层
BGDiv.addChild(bgmapimg); }

这样我们就完成了一次性加载所有图像,以后在使用时就可以直接通过数组取图像: loadData ["图像名称"]

运行一下代码,是不是感觉有点游戏的味道了,如果电脑配置比较好读取较快看不到效果的话,

可以设置一个错误的图片路径,永远读取不到的话就会停留在读条界面,就可以看到效果了。

本篇源代码+素材 下载地址:http://pan.baidu.com/s/1cEbn90

下一篇我们将讲解  游戏界面布局与性能优化

使用Html5+C#+微信 开发移动端游戏详细教程 :(五)游戏图像的加载与操作的更多相关文章

  1. 使用Html5+C#+微信 开发移动端游戏详细教程 总目录

    (一).序(关于作者创业失败的感想) (二).准备工作&开发环境 (三).使用html5引擎搭建游戏框架 (四).游戏中层的概念与设计 (五).游戏图像的加载与操作 (六).游戏界面布局与性能 ...

  2. 使用Html5+C#+微信 开发移动端游戏详细教程: (四)游戏中层的概念与设计

    众所周知,网站的前端页面结构一般是由div组成,父div包涵子div,子div包涵各种标签和项, 同理,游戏中我们也将若干游戏模块拆分成层,在后续的代码维护和游戏程序逻辑中将更加清晰和便于控制. We ...

  3. 使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架

    教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入 ...

  4. 使用Html5+C#+微信 开发移动端游戏详细教程 :(一)序(关于作者创业失败的感想)

    说起梦想,我清楚的记得2012年7月初毕业,拿到毕业证书的那天果断买好了次日南下去深圳的绿皮火车票,500多块,26个小时车程.第二天就拖上行李到了深圳. 一开始的想法仅仅是过去想见见世面,学习点新技 ...

  5. 使用Html5+C#+微信 开发移动端游戏详细教程:(六)游戏界面布局与性能优化

    本篇教程我们主要讲解在游戏界面上的布局一般遵循哪些原则和一些性能优化的通用方法. 接着教程(五),我们通过Loading类一次性加载了全部图像素材,现在要把我们所用到的素材变成图片对象显示在界面上,由 ...

  6. 使用Html5+C#+微信 开发移动端游戏详细教程 :(二)准备工作&开发环境

    C#开发环境:VS2013; H5开发环境:WebStorm; 数据库:mysql+navicat管理工具: 操作系统:win7: 调试:chrome浏览器 如果想在微信端上线运营游戏请做好以下准备工 ...

  7. AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)

    AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载" ...

  8. 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)

    | 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作.进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过v ...

  9. iOS开发 XML解析和下拉刷新,上拉加载更多

    iOS开发 XML解析和下拉刷新,上拉加载更多 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示 ...

随机推荐

  1. 27Where条件筛选数据-简单(必学)-天轰穿sqlserver视频教程

    大纲:简单条件查询 模糊查询 复合条件 使用IN子句 BETWEEN子句 空值与非空值 优酷地址 代码下载地址 http://www.cnthc.com/?/article/160

  2. 如何通过linux ssh远程linux不用输入密码登入

    如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料   ssh,ssh-keygen,scp 方法/步骤   首 ...

  3. 单元测试 mock EF 中DbContext 和DbSet Include

    现在EF越来越流行了,很多时候业务成都是直接访问DbContext 和DbSet来操作数据的. 那么我们测试的时候如何来mock这2个对象了?现在时间很晚了, 就直接贴code吧 首先看看的我们DbC ...

  4. EWM 强大的数据修复功能

    在上了EWM系统后,运行一段时间可能因为不正确的操作,系统意外情况数据不一致的问题,交货单行项目状态不致,等等报不一致的情况,EWM的自检功能比较强. 下面介绍一种数据不致的修复工具之一,tx: /S ...

  5. Tomcat远程调试

    1.如果tomcat在Windows下 打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行: set CATALINA_OPTS=-server -Xdebug ...

  6. 解决VS2010中在项目上右键鼠标,无“添加STS引用”菜单的问题

    解决方法:将Windows Identity Foundation SDK文件夹C:\Program Files (x86)\Windows Identity Foundation SDK\v3.5\ ...

  7. 安装配置NFS服务

    超级好的配置centos下服务的链接 http://www.server-world.info/en/note?os=CentOS_6&p=nfs http://linux.vbird.org ...

  8. Oracle中group by用法

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...

  9. define 与 inline

    define 就是代码替换,在编译阶段进行简单的代码替换,大量用于宏定义开关,以及定义表达式和常量,如: 1.开关定义 #define CONFIG_OPENED 使用: #ifdef CONGFIG ...

  10. 実行時にMicrosoft.ACE.OLEDB.12.0プロバイダーはローカルコンピュータに登録されていませんが出てしまう

    環境 Windows8 64bit Visual Studio 2010 Access 2010 32bit 接続プロバイダは「Microsoft.ACE.OLEDB.12.0」 対応 Downloa ...