对与cocos2d-x3.x 版本中的plist 文件中的frame 中的二维数组的读写

来源:互联网 发布:知乎 广场舞大妈 编辑:程序博客网 时间:2024/05/01 19:01
<?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>BG1.png</key>            <dict>                <key>frame</key>                <string>{{0,0},{960,640}}</string>                <key>offset</key>                <string>{0,0}</string>                <key>rotated</key>                <false/>                <key>sourceColorRect</key>                <string>{{0,0},{960,640}}</string>                <key>sourceSize</key>                <string>{960,640}</string>            </dict>        </dict>        <key>metadata</key>        <dict>            <key>format</key>            <integer>2</integer>            <key>realTextureFileName</key>            <string>BG1-hd.pvr.ccz</string>            <key>size</key>            <string>{960,640}</string>            <key>smartupdate</key>            <string>$TexturePacker:SmartUpdate:c93237e161b27cfcb49ad4bc3e681a45$</string>            <key>textureFileName</key>            <string>BG1-hd.pvr.ccz</string>        </dict>    </dict></plist>
中<key>frame</key>                <string>{{0,0},{960,640}}</string>                <key>offset</key>
的二维数组读取其实是用到的COCOS2D-x中的Rect 结构
 
 
<pre class="cpp" name="code">Rect rect;rect=<span style="color:#ff6666;">RectFromString</span>(farscene->valueForKey("frame")->getCString());//Point point=PointFromString()log("point=%f,%f,%f,%f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);

可以用红色字体所描出的函数来获取该二维数组,其实本身该plist文件中的{0,0},{960,640}代表的就是位置和大小,所以用RectFromString()再合适不过了
该类型相同的函有三个,<span style="color:#3333ff;">PointFromString(),RectFromString(),SizeFromString();这是我今天的收获。</span>

0 0