iOS Dev (49) 애플 공식 Sprite Kit 게임 모델
저자: 대 예 형
블 로그:http://prevention.iteye.com
기본 구조
- AppDelegate - ViewController: 기본 적 인 VC. -MyScene: 애니메이션 장면, 처리 동작 등.
AppDelegate 에서 ViewController 를 예화 하고 ViewController 에서 MyScene 을 예화 합 니 다.
AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[ViewController alloc] init];
[self.window makeKeyAndVisible];
return YES;
}
ViewController
- (void)loadView
{
self.view = [[SKView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
}
- (void)viewDidLoad
{
[super viewDidLoad];
SKView * skView = (SKView *)self.view;
SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:scene];
}
위 에 이거 알 아 보기 쉬 워.loadView 에서 view 를 초기 화 합 니 다. 이것 은 init 에서 할 수도 없고 view DidLoad 에서 할 수도 없다 는 것 을 기억 해 야 합 니 다.
viewdLoad 에서 먼저 MyScene 을 실례 화하 고 이 MyScene 테이프 scaleMode 를 SKscene Scale Mode AspectFill 로 설정 합 니 다.마지막 으로 view 에서 이 장면 을 소개 합 니 다.
이상 의 절 차 는 모두 일반적인 방법 이다.
MyScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
myLabel.text = @"Hello, World!";
myLabel.fontSize = 30;
myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
CGRectGetMidY(self.frame));
[self addChild:myLabel];
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite.position = location;
SKAction *action = [SKAction rotateByAngle:M_PI duration:1];
[sprite runAction:[SKAction repeatActionForever:action]];
[self addChild:sprite];
NSLog(@"for loop");
}
NSLog(@"touchesBegan");
}
touches Began 방법 을 실현 합 니 다. 이 방법 은 MyScene 이 UIResponder 에서 계승 한 것 으로 다음 과 같이 정의 합 니 다.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
이 상속 관 계 는 이렇게 가진다.
MyScene -> SKScene -> SKEffectNode -> SKNode -> UIResponder
나중에 이 touches Began 얘 기 하 자.
먼저 touch 의 점 location 을 가 져 옵 니 다
sprite 를 만 듭 니 다. sprite Node WithImageNamed 라 는 API 를 사용 합 니 다
이 sprite 테이프 위 치 를 설정 합 니 다
SKaction 을 만 들 고 sprite 로 하여 금 이 action 을 반복 하 게 합 니 다
마지막 으로 이 sprite 를 scene 에 추가 하 세 요
전재 할 때 대 예 형 에서 온 블 로 그 를 밝 혀 주세요.http://prevention.iteye.com
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.