Home Game Development Got a bug with body animation? – C++

Got a bug with body animation? – C++

0
Got a bug with body animation? – C++

[ad_1]

I’m certain there is no such thing as a error within the location of the plist file and png picture, why is that this error nonetheless displaying?
the code as follows:

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("/protagonist_move/a.plist");
	auto pSprite2 = Sprite::create();
	pSprite2->setPosition(500, 600);
	this->addChild(pSprite2,2);
	Vector<SpriteBody*>listing;
	listing.reserve(2);
	listing.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("/protagonist_move/10001.png"));
    listing.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("/protagonist_move/10002.png"));
	auto pAnimation = Animation::createWithSpriteFrames(listing, 0.2f, 1000);
	auto pAnimate = Animate::create(pAnimation);
	pSprite2->runAction(pAnimate);

the errors as follows:
11

please take away “/” from “”/protagonist_move/a.plist” => ““protagonist_move/a.plist”

The drawback nonetheless exists after modification

I uploaded the demo file, please check out what’s the drawback.
demo.zip (1.2 MB)

The appropriate sprite body title is “10020.png” and “10021.png”, you possibly can verify it in aaaa.plist, additionally you don’t want 10020.png and 10021.png, the aaaa.plist will add aaaa.png.

If 10020.png and 10021.png will not be wanted, how ought to the code be written?

The a.plist ought to containing the sprite body title, then you should utilize the title to get the body from cache.

https://docs.cocos.com/cocos2d-x/handbook/en/sprites/spriteframe_cache.html

The following is an announcement that fetches frames from the cache:

SpriteFrameCache::getInstance()->getSpriteFrameByName("protagonist_move/10020.png")

This sentence is contained within the following code:

	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("protagonist_move/aaaa.plist");
	auto pSprite2 = Sprite::create();
	pSprite2->setPosition(500, 600);
	this->addChild(pSprite2, 2);
	Vector<SpriteBody*>listing;
	listing.reserve(2);
	listing.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("protagonist_move/10020.png"));
	listing.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("protagonist_move/10021.png"));
	auto pAnimation = Animation::createWithSpriteFrames(listing, 0.2f, 1000);
	auto pAnimate = Animate::create(pAnimation);
	pSprite2->runAction(pAnimate);

But the error within the title seems after working. doesn’t resolve the issue.
11

In your demo.zip, the aaaa.plist incorporates 2 sprite body, which named 10020.png and 10021.png, whenever you add aaaa.plist to SpriteFrameCache, get the SpriteBody by title 10020.png and 10021.png.
May be you misunderstand the utilization of sprite sheet and sprite body cache.
You don’t want /demo/Resources/protagonist_move/10020.png and 10021.png within the mission when including sprite sheet to SpriteFrameCache, simply aaaa.plist and aaaa.png is sufficient.
All the wanted data is saved in aaaa.plist, you possibly can verify it by textual content editor.

[ad_2]

LEAVE A REPLY

Please enter your comment!
Please enter your name here