2015-01-14 1 views
-1

나중에 볼 때 화면에 볼 오브젝트를 만들었습니다. 그러나 내가 그렇게하려고 할 때, 그것은 나에게 오류를 준다. 불행히도 나는 그것을 밖으로 만들 수 없습니다.skspritenode에서 볼 오브젝트를 만들 때 오류가 발생했습니다.

ballClass.h :

@import SpriteKit; 
#import "ballClass.h" 

@implementation ballClass 

+ (SKSpriteNode*)ballNode { 

    SKSpriteNode* node = [SKSpriteNode spriteNodeWithImageNamed:@"Ball"]; 
    return node; 
} 
@end 

ballClass.m : 내 게임 scene.m에서

#import <Foundation/Foundation.h> 

@interface ballClass : NSObject 

+ (SKSpriteNode*)ballNode; 

@end 

내 touchesBegan 방법 : 어떤 도움을 크게 감상 할 수

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
/* Called when a touch begins */ 

for (UITouch *touch in touches) { 
    CGPoint location = [touch locationInNode:self]; 

    SKSpriteNode *ball = [ballClass ballNode]; 
    ball.position = location; 
    [self addChild:ball]; 


    } 
} 

. 미리 감사드립니다.

답변

0

그것은해야한다 :

ballClass.h

@import SpriteKit; 
#import <Foundation/Foundation.h> 

@interface ballClass : NSObject 
+ (SKSpriteNode*)ballNode; 
@end 

YourScene.m에서 ballClass.m

#import "ballClass.h" 

    @implementation ballClass 
    + (SKSpriteNode*)ballNode { 

     SKSpriteNode* node = [SKSpriteNode spriteNodeWithImageNamed:@"Ball"]; 
     return node; 
    } 
    @end 

:

//at the beginning of the file 
#import ballClass.h 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    /* Called when a touch begins */ 

    for (UITouch *touch in touches) { 
     CGPoint location = [touch locationInNode:self]; 

     SKSpriteNode *ball = [ballClass ballNode]; 
     ball.position = location; 
     [self addChild:ball]; 


    } 
} 
+0

안녕! 당신의 반응에 감사드립니다. 나는 touchesbegan 방법을 붙이기 만하면 내 게시물을 더 짧게 만들 수 있습니다. 내 원본 코드에서 이미 모든 mij 헤더와 프레임 워크를 가져 왔습니다. 그래서 기본적으로이 게시물에 작성한 코드는 실제로 내 코드와 동일합니다. 내 문제의 원인이 무엇인지 생각해 봤니? –

+0

당신이 더 좋아 보인다면 동일하지 않습니다. 귀하의 코드에 오타가 있다고 가정합니다. 귀하의 게시물을 봐, 당신 ballClass.h 파일에서 ballClass.h 가져올 수 있습니다. 기본적으로 ballClass.h에 정의 된 내용은 ballClass.m 파일에 정의되어야하며 반대의 경우도 마찬가지입니다. 또한 touchesBegan이 정의 된 씬 파일에서 ballClass.h를 가져와야합니다. 필자의 예를 통해 좋은 결과를 얻었으므로 그대로 복사하여 붙여 넣으십시오. – Whirlwind

+0

안녕하세요, 회오리 바람. 나는 내 게시물을 검토하고 내가 그들을 바꿔야 만한다는 것을 알아 차렸다. 그러나 제대로 실행하지 못하게하는 오류는 ballClass.h 대신 ballClass.m에 SpriteKit을 가져온 것입니다. 고마워요! 이러한 작은 실수는 있지만 큰 영향을줍니다. –