void HelloWorld::initSprites()
{
    _cache = CCArray::arrayWithCapacity(53);
    PolygonSprite *sprite = Watermelon::spriteWithWorld(world);
    this->addChild(sprite, 1);
    sprite->activateCollisions();
    _cache->addObject(sprite);
}
PolygonSprite * PolygonSprite::spriteWithWorld(b2World *world, TYPE_FRUITS type, const char *physicPlistFile)
{
    PolygonSprite * polygonSprite = new PolygonSprite;
    if (polygonSprite == NULL || !polygonSprite->initWithWorld(world, type, physicPlistFile))
    {
        CC_SAFE_DELETE(polygonSprite);
        return NULL;
    }
    polygonSprite->autorelease();
    return polygonSprite;
}
PolygonSprite * PolygonSprite::spriteWithFile(const char *filename, b2Body *body, bool original)
{
    PolygonSprite * polygonSprite = new PolygonSprite;
    if (polygonSprite == NULL || !polygonSprite->initWithFile(filename, body, original))
    {
        CC_SAFE_DELETE(polygonSprite);
        return NULL;
    }
    polygonSprite->autorelease();
    return polygonSprite;
}
PolygonSprite * PolygonSprite::spriteWithTexture(CCTexture2D *texture, b2Body *body, bool original)
{
    PolygonSprite * polygonSprite = new PolygonSprite;
    if (polygonSprite == NULL || !polygonSprite->initWithTexture(texture, body, original))
    {
        CC_SAFE_DELETE(polygonSprite);
        return NULL;
    }
    polygonSprite->autorelease();
    return polygonSprite;
}
示例#5
0
PolygonSprite* PolygonSprite::create(cc::CCTexture2D *pTexture, std::vector<pr::Vec2> const& triangles, cc::CCRect const& rect)
{
	std::vector<cc::ccVertex3F> cc_triangles;
	
	for( size_t i=0; i<triangles.size(); ++i )
    {
		cc::CCPoint p = triangles[i].toCCPoint();
		cc::ccVertex3F v = { p.x - rect.origin.x , p.y - rect.origin.y, 0 };
        cc_triangles.push_back( v );
    }

	PolygonSprite *sprite = new PolygonSprite();

	if (sprite && sprite->init(pTexture, &cc_triangles, rect))
	{
		sprite->autorelease();
		return sprite;
	}
	CC_SAFE_DELETE(sprite);
	return NULL;
}