首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cocos2d-html5 5从缓存plist中获取sprite

cocos2d-html5 5从缓存plist中获取sprite
EN

Stack Overflow用户
提问于 2014-09-16 18:30:30
回答 2查看 2.1K关注 0票数 0

我在html5中使用cocos2d-jsv3.0,并将一个plist加载到缓存中,并试图从它们中创建一个sprite。

我收到错误了

代码语言:javascript
复制
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (player-stand-f-0, line 0)

据我所知,.createWithSpriteFrameName是不受欢迎的,但是所有的例子都显示了它的用途。

守则:

代码语言:javascript
复制
var cache = cc.spriteFrameCache;
cache.addSpriteFrames(player.plist, player.png);

this.sprite = cc.Sprite.createWithSpriteFrameName("player-stand-f-0");
this.sprite.setPosition(new cc.Point(300,300));
this.addChild(this.sprite);

player.plist

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
  <dict>
    <key>player-sit-f-0</key>
    <dict>
        <key>frame</key>
        <string>{{3,108},{77,95}}</string>
        <key>offset</key>
        <string>{0,0}</string>
        <key>rotated</key>
        <false/>
        <key>sourceColorRect</key>
        <string>{{0,0},{77,95}}</string>
        <key>sourceSize</key>
        <string>{77,95}</string>
    </dict>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-16 18:38:16

我用过

代码语言:javascript
复制
this.sprite = new cc.Sprite("#player-stand-f-0");

而不是

代码语言:javascript
复制
this.sprite = cc.Sprite.createWithSpriteFrameName("player-stand-f-0");
票数 2
EN

Stack Overflow用户

发布于 2014-09-28 17:52:40

代码语言:javascript
复制
// create sprite sheet
cc.SpriteFrameCache.getInstance().addSpriteFrames(spritesheet_plist); // add Spritesheet Plist 
var SpriteSheet = cc.SpriteBatchNode.create(spritesheet_png);  // add Spritesheet Png
this.addChild(SpriteSheet,1);

// Push the frames for animation
var animFrames = [];
for (var i = 0; i < 6; i++) {
    var str = "sequence_" + i + ".png";
    var frame = cc.SpriteFrameCache.getInstance().getSpriteFrame(str);
    animFrames.push(frame);
}


// taadaa ...!!  Animate the sprites
var animation = cc.Animation.create(animFrames, 0.06);
var sprite = cc.Sprite.createWithSpriteFrameName("sequence_0.png");
sprite.setAnchorPoint(0.5,0.5); // optional
sprite.setScale(1.0,1.0); // optional
sprite.setPosition(widhthPostion, heightPosition);
sprite.runAction(cc.RepeatForever.create(cc.Animate.create(animation)));
SpriteSheet.addChild(sprite,1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25876008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档