我試圖從第一次將主方法從一個新的GameScene移動到一個新的文件/類,所以我可以保持更清潔,真的只是儘量保持代碼儘可能相同,並將其放在項目的自己的文件中。將SpriteNode方法從gamescene首次移動到自己的類文件,節點沒有繪製
這是一個SKSpriteNode方法,一旦我設置它,我可以看到我的NSLog顯示出來,但是我不能讓節點本身被繪製到屏幕上,我必須在如何創建/分配/指向這個spritenode在這個新的文件/類或東西?
如果有人能分身秒,看看,幫我明白任何幫助將是非常美妙的
目前GameScene.m我喜歡
@implementation GameScene
{
SKSpriteNode *myNode;
}
//own method in GameScene
- (SKSpriteNode *)createMyNode
{
myNode = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(20, 20)];
myNode.position = CGPointMake(50, 50);
//etc
return myNode;
}
-(void)didMoveToView:(SKView *)view {
[self addChild: [self createMyNode]];
}
//it then is successfully created on screen
這種方法現在,我想添加到上述新文件/類它自己的文件等
newclassfile.m
#import "newclassfile.h"
@implementation newclassfile {
SKSpriteNode myNode
}
- (SKSpriteNode *)createMyNode
{
myNode = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(20, 20)];
myNode.position = CGPointMake(50, 50);
//etc
NSLog(@"newclassfile myNode check");
return myNode;
}
newclassfile.h
#import <SpriteKit/SpriteKit.h>
@interface newclassfile : SKSpriteNode
-(SKSpriteNode*)createMyNode;
@end
然後回到GameScene.m
//import header
#import "newclassfile.h"
-(void)didMoveToView:(SKView *)view {
newclassfile *myNode=[[newclassfile alloc]init];
[myNode createMyNode];
}
我希望看到我的新spritenode,但沒有看到它,但我看到NSLog(@「newclassfile myNode check」);在控制檯,它告訴我方法正在運行我猜。
任何幫助,這將是非常讚賞
嗨@ 0x141E感謝您的回覆!嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖嘖〜但是隻是把一個方法放在另一個文件裏,不是嗎這就是處理新文件/類等時的工作方式嗎?沒有簡單的方法來做到這一點? 這段代碼確實有用,但是我說我想讓這個節點也變成一個物理實體我現在該怎麼做?希望我能做點像 //你的代碼 if(self = [super initWithColor:color size:size]){self.position = CGPointMake(200,200); //我的物理主體代碼在這裏 self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(35,35)]; 但我想這不是那麼簡單? – TF35Lightning 2014-11-05 06:31:06