日志正文
|
||
闲话:前段时间种种机缘巧合,有幸进了“泰然”得以窥见Iven、子龙山人和一叶道长的庐山真面目,和这样的高手一起让人都不由得踌躇满志起来。跟大神们在一起是很愉快的,原本想跟着他们好好学习,斗志昂扬的想留在那里,能和他们一直并肩作战到退休。可是由家里去公司来回四个小时的公交路程(坐地铁基本纵穿整个成都市)让我这种很多年不坐班已经自由惯了的“散漫分子”超级不适应。每天天不亮就必须起床,天黑透了才能到家, 10天不到,我就脾气变得极差,无法控制自己的情绪。再三权衡后,我打算还是“宅”在家里“修炼”一段时间再说,不然以我这种菜鸟的级别,去给大神们扛“刀”都得体力不支,更何况说要帮着“打怪”了,呵呵。 眼看同去的学生一个个学习进度都比自己快,心里那个急啊。更加之Iven希望我跟学生一样用“飞机资源”把Cocos2d-X引擎迅速熟悉后能帮着公司做些事情,我觉得好“鸭梨山大”。他不知道我这个只懂C++皮毛的“假老练”,是多么的厌倦Vsiual Studio,每次用个DX或游戏引擎啥的,光搭建编译环境对我这种已经年近不惑的中老年妇女都是一场折磨;每次实验课,因为一些系统或编译环境的问题,学生即便完全按照我给的代码做一个小DEMO都会暴出无数让我不能解决的“Error”;即便“一叶”和“Iven”提醒我JavaScript有很多“坑”……,我仍然想换下口味试试,我跟他们说有他们几个大神在,我摔进坑里爬起来会比较快。 很快,对我这种有一定C++基础,只看过几行JavaScript,在这之前没用过Cocos2d-X,更没听说过Cocos2d-html5的Windows传统用户,我就遇到了第一个坑,那就是我不知道大神们给我们的飞行游戏相关资源里的plist文件是什么东西? 正题: 1、.plist文件简介 plist文件全名Property List,属性列表文件。它是在做iOS开发时,经常用到的文件类型,扩展名为.plist ,文件是xml格式。通常用于储存用户设置,也可以用于存储捆绑的信息。 如图1所示的xml文件内容,实际上就是存储了两个人的信息: Jack phone_num: 1380111111 age:22 Tom phone_num: 1390111111 age:36 图1 一个简单的*.plist文件内容 从直观来看,如图2的bg.png就是一张精灵列表。打开对应的bg.plist文件,我们可以看到如下的一些信息, 图2 bg.png图片
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
<dict> <key>frames</key> <dict> <key>background.png</key> <dict> <key>frame</key> <string>{{484,2},{480,852}}</string> <key>offset</key> <string>{0,0}</string> <key>rotated</key> <false/> <key>sourceColorRect</key> <string>{{0,0},{480,852}}</string> <key>sourceSize</key> <string>{480,852}</string> </dict> <key>btn_finish.png</key> ………………………………………………………………………………………….. <key>resume_sel.png</key> <dict> <key>frame</key> <string>{{52,970},{54,26}}</string> <key>offset</key> <string>{-2,-2}</string> <key>rotated</key> <false/> <key>sourceColorRect</key> <string>{{71,14},{54,26}}</string> <key>sourceSize</key> <string>{200,50}</string> </dict> </dict> <key>metadata</key> <dict> <key>format</key> <integer>2</integer> <key>realTextureFileName</key> <string>bg.png</string> <key>size</key> <string>{1024,1024}</string> <key>smartupdate</key> <string>$TexturePacker:SmartUpdate:a9da1dd3317077be7392b640c24084cf:1/1$</string> <key>textureFileName</key> <string>bg.png</string> </dict> </dict> </plist> 由于篇幅所限,我没有把代码全部贴上,请自己下载。我利用了Cocos2d-html5引擎中的HelloHtml5World例子。 首先创建一张跟canvas一样大小的(800,450)的白色背景的图片,假设将它取名为testScene.png。接着把你要查看的bg.plist文件和bg.png所在的文件夹“bg”和testScene.png都拷贝到项目文件里的“res”里面。在resource.js里添加资源路径,如下几行代码: var s_bg="res/bg/bg.png"; var s_bg_plist="res/bg/bg.plist"; var s_testScene="res/testScene.png"; 在g_resources数组里添加如图3所示灰色框里的三行代码。 图3 bg.png图片 将main.js里的this.sprite =cc.Sprite.create("res/HelloWorld.png"); 改成 this.sprite =
cc.Sprite.create("res/testScene.png"); 图4 直接贴图效果 为什么要替换这张图片呢?刚开始我直接用HelloWorld.png作为背景图片来观察从精灵列表bg.png里抠出来的精灵,让它显示在画布中央时,图片“回到游戏”如图4显示在Cocos2d的logo头像的右眼位置,大家可以观察到效果很差。为了更清晰直观,我选择了纯白色的图片来做为背景衬托。 继续main.js文件里,添加如下代码: //将精灵列表添加进精灵缓冲 cc.SpriteFrameCache.getInstance().addSpriteFrames(s_bg_plist); //通过图片名称创建精灵(从精灵列表里,精灵列表需已经加载进精灵缓冲) var sp = cc.Sprite.createWithSpriteFrameName("background.png"); //设置精灵锚点 sp.setAnchorPoint(cc.p(0,0)); //设置精灵在canvas(注意引擎已经将canvas坐标原点改为坐下角)的贴图位置 sp.setPosition(cc.p(200,15)); //设置精灵的比例,在此为缩小至原来的1/2 sp.setScale(0.5,0.5); this.addChild(sp, 0); 我们点击菜单里Run->Debug,运行该项目的index.html,就可以看到如图5所示的效果啦。 你可以将.plist文件里的png图片信息放到一个表里去,如我所做的表1所示。当然你也可以直接如图6所示将文件名放在对应的精灵上,方便程序编程时调用。 表1 bg.plist里文件信息 图6 bg.png 标注后的情况
最后修改于 2013-12-19 19:47
阅读(?)评论(0)
上一篇: 该日志被锁定
下一篇:关于Canvas的一些经验
|
||
评论 想第一时间抢沙发么?