Closed inc closed 13 years ago
Thanks very much Philip:-) The pull request has been handled, the changes are submitted.
Thanks very much! Weikuan Zhou
Great news, I will test this when I have more time.
I created a sprite sheet through the flash version of Zwoptex, I put the two files (grossini_dance.png and grossini_dance.plist) in /assets/, but the following code seems not work:
public class HelloWorldLayer extends CCColorLayer {
protected HelloWorldLayer(ccColor4B color) {
super(color);
this.setIsTouchEnabled(true);
//cache
CCSpriteFrameCache cache = CCSpriteFrameCache.sharedSpriteFrameCache();
cache.addSpriteFrames("grossini_dance.plist");
//frame array
ArrayList<CCSpriteFrame> framesArray = new ArrayList<CCSpriteFrame>();
for(int i=1; i<15; i++){
String frameName = String.format("grossini_dance_%02d.png", i);
CCSpriteFrame frameObject = cache.spriteFrameByName(frameName);
framesArray.add(frameObject);
}
//animation object
CCAnimation animObject = CCAnimation.animation("dance", 0.3f, framesArray);
//animation action
CCAnimate animAction = CCAnimate.action(animObject, false);
CCRepeatForever repeatAnimAction = CCRepeatForever.action(animAction);
//sprite
CCSprite grossini = CCSprite.sprite("grossini_dance_01.png");
grossini.setPosition(CGPoint.ccp(C.SUPPOSED_WIN_WIDTH/2, C.SUPPOSED_WIN_HEIGHT/2));
addChild(grossini);
grossini.runAction(repeatAnimAction);
}
public static CCScene scene() {
CCScene scene = CCScene.node();
CCLayer layer = new HelloWorldLayer(ccColor4B.ccc4(255, 255, 255, 255));
scene.addChild(layer);
return scene;
}
}
From the logcat:
07-13 10:55:35.539: WARN/System.err(2800): java.io.FileNotFoundException: grossini_dance_01.png
07-13 10:55:35.539: WARN/System.err(2800): at android.content.res.AssetManager.openAsset(Native Method)
07-13 10:55:35.539: WARN/System.err(2800): at android.content.res.AssetManager.open(AssetManager.java:337)
07-13 10:55:35.539: WARN/System.err(2800): at android.content.res.AssetManager.open(AssetManager.java:311)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.nodes.CCTextureCache$2.load(CCTextureCache.java:207)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.opengl.CCTexture2D.setLoader(CCTexture2D.java:194)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.nodes.CCTextureCache.createTextureFromFilePath(CCTextureCache.java:202)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.nodes.CCTextureCache.addImage(CCTextureCache.java:68)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.nodes.CCSprite.<init>(CCSprite.java:367)
07-13 10:55:35.539: WARN/System.err(2800): at org.cocos2d.nodes.CCSprite.sprite(CCSprite.java:268)
07-13 10:55:35.539: WARN/System.err(2800): at it.anddev.tutorialcocos2d.layer.HelloWorldLayer.<init>(HelloWorldLayer.java:52)
07-13 10:55:35.539: WARN/System.err(2800): at it.anddev.tutorialcocos2d.layer.HelloWorldLayer.scene(HelloWorldLayer.java:63)
07-13 10:55:35.539: WARN/System.err(2800): at it.anddev.tutorialcocos2d.ui.MainActivity.onStart(MainActivity.java:56)
07-13 10:55:35.542: WARN/System.err(2800): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
07-13 10:55:35.542: WARN/System.err(2800): at android.app.Activity.performStart(Activity.java:3791)
07-13 10:55:35.542: WARN/System.err(2800): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1731)
[...]
If I put all 14 files in the assets directory the animation is displayed correctly (but this way I'm not using the sprite sheet),
Is this a library bug or is my code wrong?
I'm sorry, I just found the bug by myself: It was wrong the path of the sprite:
//sprite
CCSprite grossini = CCSprite.sprite("grossini_dance.png");
This adds basic support for Zwoptex sprite sheet coordinates plists with the XML cocos2d coordinates format.