2016-05-31 3 views
0

cocos2d ios으로 퍼즐 게임을 만들고 싶습니다. 이를 위해, customized attribute value을 스프라이트로 설정하고 싶습니다. 마찬가지로 :적인 Cocos2D JS에서은 cocos2d ios의 스프라이트에서 속성 값을 사용자 정의합니다.

: (값, 전력, 픽업 속성)

var sprite = cc.Sprite.createWithSpriteFrame("res/dice.png" ,tileImage[0][randomTile]); 
      sprite.val = randomTile; 
      sprite.power = 0; 
      sprite.picked = false; 
      sprite.setScale(0.55); 
      this.addChild(sprite,1); 
      sprite.setPosition(col*tileSize+tileSize/2,row*tileSize+tileSize/2); 

tileArray[row][col] = sprite; 

내가 적인 Cocos2D IOS에서이 작업을 수행 할 수 있습니다.이 작업을 수행 할 수 있습니까? 방법?

내가 좋아하는 cocos2d ios에서 스프라이트를 만들 수 있습니다

:

또한 나는이 값, 전원을 찾기 위해 나중에 액세스하려면, 2 차원 배열이 스프라이트를 저장할
CCSprite* ss = [CCSprite spriteWithSpriteFrame:tileImage[0][randomCandy]]; 
    ss.anchorPoint = ccp(0.5, 0.5); 
    ss.scale = 0.55f*appDelegate.deviceScaleFloat*appDelegate.deviceRatinaVariable; 
    ss.position = ccp(layer_posX+col*tileSize+tileSize/2,layer_posY+row*tileSize+tileSize/2); 
    [self addChild:ss z:1]; 

을 포착
+1

userObject라는 속성이 있습니다. 사용하십시오. cocos2d-js에서는 이러한 목적을 위해 .setUserObject ({...}) 및 .setUserData ({...})를 사용했습니다. –

답변

0

마지막으로이 질문에 대한 해결책을 찾았습니다.

나는 그래서, 내 객체 클래스가 create a sprite object in a cocos touch class.하여이 작업을 수행 할 수 있습니다

:

The objectSpriteClass.h definition is: 

#import "CCSprite.h" 

@interface objectSpriteClass : CCSprite 
{ 
    int value; 
    int power; 
    BOOL picked; 

} 

@property(readwrite, assign) int value, power; 
@property(assign, readwrite) BOOL picked; 

- (id)initWithSprite:(int)type; 
@end 

그리고 objectSpriteClass.m 클래스 정의는 다음과 같습니다

그런 다음
#import "objectSpriteClass.h" 

@implementation objectCandy 
@synthesize value, power, picked; 
- (id)initWithSprite:(int)type 
{ 
    if((self=[super init])) 
{ 
    value = 0; // set value 
    power = 1; // set power 
    picked = NO; // set 
    CCTexture *texture=[CCTexture textureWithFile:[NSString stringWithFormat:@"gem-%d.png",type]]; 
    if(texture) { 
     CGRect rect = CGRectZero; 
     rect.size = texture.contentSize; 
     return [self initWithTexture:texture rect:rect]; 
    } 
} 
return self; 
} 

@end 

이 클래스의 객체를 생성 할 수 있습니다처럼 :

objectSpriteClass *spriteArray[20]; 

objectCandy *Obj = [[objectCandy alloc] initWithSprite: 1]; 

    Obj.anchorPoint = ccp(0.5, 0.5); 
    Obj.opacity = 1.0f; 
    Obj.scale = 1.0f; 
    Obj.position = ccp(100, 100); 
    [self addChild:Obj z:1]; 

spriteArray[0] = Obj; 
관련 문제