Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 如何在多个位置使用相同的精灵Cocos2d_Cocos2d Iphone_Sprite - Fatal编程技术网

Cocos2d iphone 如何在多个位置使用相同的精灵Cocos2d

Cocos2d iphone 如何在多个位置使用相同的精灵Cocos2d,cocos2d-iphone,sprite,Cocos2d Iphone,Sprite,如何在多个位置拥有相同的精灵Cocos2d请帮助 我已经搜索了所有地方,找不到答案只需创建多个精灵(CCSprite实例)。它们都可以使用相同的纹理(位图文件) 只需创建多个精灵(CCSprite实例)。它们都可以使用相同的纹理(位图文件) 不能将同一个CCSprite作为子节点添加到多个ccnode,但可以使Cocos2D多次渲染同一个CCSprite。 要实现这一点,您需要创建CCNode的子类,该子类将存储对CCSprite的引用,并应用所需的转换在其-draw方法中绘制它。 比如说 -(

如何在多个位置拥有相同的精灵Cocos2d请帮助
我已经搜索了所有地方,找不到答案

只需创建多个精灵(CCSprite实例)。它们都可以使用相同的纹理(位图文件)


只需创建多个精灵(CCSprite实例)。它们都可以使用相同的纹理(位图文件)


不能将同一个CCSprite作为子节点添加到多个ccnode,但可以使Cocos2D多次渲染同一个CCSprite。 要实现这一点,您需要创建CCNode的子类,该子类将存储对CCSprite的引用,并应用所需的转换在其-draw方法中绘制它。 比如说

-(void)draw
{
    [super draw];

    CGPoint initialPosition = [_node position];
    float initialScale = [_node scale];

    [_node setScale:self.scale];
    [_node setPosition:self.position];
    [_node visit];
    [_node setPosition:initialPosition];
    [_node setScale:initialScale];
}
如果您需要画中画的外观,您可能必须使用glScissor


然后,每次需要渲染原始CCSprite的附加副本时,只需将该类的一个实例添加到子类中。

不能将同一个CCSprite作为子类添加到多个CCNode中,但可以使Cocos2D多次渲染同一个CCSprite。 要实现这一点,您需要创建CCNode的子类,该子类将存储对CCSprite的引用,并应用所需的转换在其-draw方法中绘制它。 比如说

-(void)draw
{
    [super draw];

    CGPoint initialPosition = [_node position];
    float initialScale = [_node scale];

    [_node setScale:self.scale];
    [_node setPosition:self.position];
    [_node visit];
    [_node setPosition:initialPosition];
    [_node setScale:initialScale];
}
如果您需要画中画的外观,您可能必须使用glScissor


然后,每次需要渲染原始CCSprite的附加副本时,只需添加该类的一个实例。

在for循环中放置一个方法

在方法内部,创建CCSprite并修改它


这最适合静态精灵,因为我不知道如何在方法之外访问它们。

将方法放在for循环上

在方法内部,创建CCSprite并修改它

这最适合静态精灵,因为我不知道如何在方法之外访问这些