문제

배열에서 스프라이트가 표시되는 이미지를 변경하려고합니다. 여기에 사용중인 코드는 다음과 같습니다.

((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;

오류 메시지가 나타납니다.

error: request for member 'image' in something not a structure or union

내가 뭘 잘못하고 있죠?

읽어 주셔서 감사합니다.

도움이 되었습니까?

해결책

나는 이것이 이것을하는 방법이라고 생각하지 않습니다. 이 방법보다는 init 방법 중 하나를 호출해야합니다.

- (id) initwithcgimage : (cgimageref) 이미지;

- (id) InitwithTexture : (Texture2d*) Tex;

- (id) initwithfile : (nsstring *) imagefile;

내 게임에서 나는 이것을 다르게한다, 나는 배열에도 저장하는 'Zed'라는 객체에 대한 수업이있다. 그것은 스프라이트를 필드로 가지고 있으며 이미지를 변경하려면 전체 스프라이트를 교환하고 오래된 것을 숨기고 새 것을 보여주십시오.

다른 팁

나는 이것처럼한다 :

Texture2D *texture = [[Texture2D alloc] initWithImage:myUIImage]
[sprite setTexture: texture];

이런 식으로하는 것이 좋습니다.

init 어딘가에 :

CCSpriteBatchNode *spritesheet = [CCSpriteBatchNode batchNodeWithFile:@"car_anim.png"];
[self addChild:spritesheet];

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"car_anim.plist"];

어딘가에 :

[yourSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"car_left.png"]];

*.Plist 및 *.png는 Zwoptex로 수행 할 수 있습니다.

다른 솔루션은 텍스처를 수행하는 동안 텍스처를 변경하려고 할 때 애니메이션을 깨뜨릴 수 있습니다.

사용해보십시오

((Sprite *) [EnemiesArray ObjectAtIndex : index]) setImage : baseImage];

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top