Cocos Creator

런타임 중 스프라이트 교체

밀하우스 마나스톰 2022. 10. 14. 16:14

만약 런타임 중에 어떤 노드의 이미지를 바꿔야 한다고 하면

 

Sprite 컴포넌트에 접근해서 spriteFrame을 새로운 cc.SpriteFrame으로 바꿔주면 된다.

 

그 경우 이미지는 바뀌겠지만 노드의 사이즈는 유지가 된다.

 

즉 500x500 사이즈의 SpriteFrame으로 교체를 해도 1280x720 사이즈에 맞게 이미지가 늘어날 것이다.

 

 

static ChangeSprite(target: cc.Sprite, newSpriteFrame: cc.SpriteFrame, resize: boolean){
    target.spriteFrame = newSpriteFrame;
    if (resize) target.node.setContentSize(newSpriteFrame.getOriginalSize());
}

그럴 때는 SpriteFrame을 교체한 뒤 SpriteFrame의 원본 사이즈로 타겟 노드의 사이즈를 재조정하면 된다.