Sprite Kit编程指南
更新时间:2023-06-11 12:21:01 阅读量: 实用文档 文档下载
- sprite推荐度:
- 相关推荐
ios原生游戏开发
oe:本 P译自⑸pple官方的 pr/te K/t Programm/ng Gu/de》,b用C.ome
浏 g的自动P译功能作G译,h后在一t语句不n或i易造成s解的地方作局
Cu正:方便英 不好的开发者查_:如有错d之处,欢迎K家指 u正:
p时欢迎K家S注r的技mA客 .ttp: /t_mag/c/an:K家的
持lr最K的动c:
S
API
,
, , API
Sprite Kit rendering textured
Sprite Kit
Sprite Kit
Sprite Kit
Sprite Kit
Xcode Sprite Kit ”
atlases ) Sprite Kit
Core Animation
ios原生游戏开发
Sprite Kit iOS OS X “ ” 2D
Sprite Kit
CGPath
Sprite Kit
animate
。
# OpenGL Sprite Kit
ios原生游戏开发
SKView
) scenes SKScene
Sprite Kit SKScene
SKView
“ Sprite Kit” “ ” “ Sprite Kit ”
n
SKScene SKNode
”
:
SKNode Sprite Kit
SKEffectNode Core Image
layer ”
responder descending UIResponder
NSResponder
“ ” “ ” “ ”
ios原生游戏开发
bundle Sprite Kit
Sprite Kit #
Sprite Kit
Sprite Kit
)
# Sprite Kit
“ ”
p
actions SKAction
:
) ”
”
“ ” “ # ”
。
ios原生游戏开发
SKPhysicsBody
forces
。
。
hook
SKPhysicsWorld
SKPhysicsJoint
“ ”
e
“ Sprite Kit” Sprite Kit Sprite
Kit ( Sprite Kit Sprite
Kit
“Sprite Kit ” Sprite Kit
Sprite Kit
iOS iOS OS X Mac
Xcode
ios原生游戏开发
Objective-C blocks
Sprite Kit SpriteKit
Xcode Sprite Kit
SKSpriteNode Sprite Tour
Sprite Kit SpriteKit
Sprite Kit Explained Adventure
ios原生游戏开发
Sprite Kit Sprite Kit
Sprite Kit )
Sprite Kit
iOS iOS Sprite Kit OS X
( Xcode 5.0 iOS Xcode
SpriteWalkthrough ClassPrefix Sprite “ iPad
Sprite Kit
ios原生游戏开发
Sprite Kit Sprite Kit SKView
SKView SKScene
Sprite Kit )
Sprite Kit
!
1. storyboard SpriteViewController
view SKView
2. import <SpriteKit/SpriteKit.h>
3. viewDidLoad - void viewDidLoad
{
[super viewDidLoad];
SKView * spriteView = SKView * self.view;
spriteView.showsDrawCount = YES;
spriteView.showsNodeCount = YES;
spriteView.showsFPS = YES;
}
ios原生游戏开发
4.
spriteView.showsFPS
Hello !
1. HelloScene SKScene
2. #import “HelloScene.h”
3. - void viewWillAppear: BOOL animated
{
HelloScene *hello = [[HelloScene alloc] initWithSize:CGSizeMake(768,1024)];
SKView *spriteView =(SKView *)self.view;
[spriteView presentScene:hello];
}
f
Sprite Kit (chuck)
“Hello World”
ios原生游戏开发
didMoveToView:
Hello !
1. @interface HelloScene()
@property BOOL contentCreated; @end
2. didMoveToView: - self didMoveToView:(SKView *)view
{
if self.contentCreated
{
[self createSceneContents];
self.contentCreated = YES;
}
}
didMoveToView
contentCreated
ios原生游戏开发
3. createSceneContents - (void)createSceneContents
{ self.backgroundColor = [SKColor blueColor];
self.scaleMode = SKSceneScaleModeAspectFit;
[self AddChild [self newHelloNode];
}
SKColor color
SKColor iOS UIColor OS X
NSColor
: scale : :
(letterboxing)
4. newHelloNode - SKLabelNode * newHelloNode
{
SKLabelNode * helloNode = [SKLabelNode labelNodeWithFontNamed:@“Chalkduster”];
@helloNode.text =“Hello, World ”;
helloNode.fontSize = 42;
helloNode.position = CGPointMake(CGRectGetMidX(self.frame) CGRectGetMidY(self.frame)) return helloNode;
}
ios原生游戏开发
OpenGL ES Quartz 2D
Sprite Kit
Sprite Kit
Sprite Kit
“Hello, World ”
Sprite Kit
p p
action
Sprite Kit action
、
p !
1. newHelloNode = @“helloNode”;
monster
2. touchesBegan withEvent 、
helloNode
ios原生游戏开发
iOS UIResponder OS X NSResponder
Sprite Kit - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
SKNode *helloNode = [self childNodeWithName:@“helloNode”];
If(helloNode != nil)
{
= nil;
SKAction *moveUp = [SKAction moveByX:0 y:100.0 duration:0.5];
SKAction *zoom = [SKAction scaleTo:2.0 duration:0.25];
SKAction *pause = [SKAction waitForDuration:0.5];
SKAction *fadeAway = SKAction fadeWithDuration:0.25];
SKAction *remove = [SKAction removeFromParent];
SKAction * moveSequence = [SKAction sequence:@[moveUp, zoom, pause, fadeAway, remo
[helloNode runAction moveSequence];
}
}
”
) ;
1
0
ios原生游戏开发
Sprite Kit
“Hello, World ”
Hello
!
1. SpaceshipScene SKScene
2. HelloScene @interface SpaceshipScene()
@property BOOL contentCreated;
@end
@implementation SpaceshipScene
- (void)didMoveToView:(SKView *)view
{
if(!self.contentCreated)
{
[self createSceneContents];
self.contentCreated = YES;
}
}
ios原生游戏开发
- (void)createSceneContents
{ self.backgroundColor = [SKColor blackColor]; self.scaleMode = SKSceneScaleModeAspectFit; }
3. HelloScene.m SpaceshipScene.h
#import “SpaceshipScene.h”
4. touchesBegan:withEvent runAction
runAction:completion: [helloNode runAction:moveSequence completion:^ { SKScene * spaceshipScene = [[SpaceshipScene alloc] initWithSize:self.size];
SKTransition *doors= [SKTransition doorsOpenVerticalWithDuration:0.5];
[self.view presentScene:spaceshipScene transition:doors];
}];
、
“
SKSpriteNode
ios原生游戏开发
Sprite Kit
placeholder
Sprite Kit
!
1. SpaceshipScene.m createSceneContents SKSpriteNode *spaceship = [self newSpaceship];
spaceship.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)-150)
[self addChild:spaceship];
2. newSpaceship - (SKSpriteNode *)newSpaceship
{
SKSpriteNode *hull= [[SKSpriteNode alloc] initWithColor:[SKColor grayColor] size CGSi
SKAction *hover= [SKAction sequence:@[
[SKAction waitForDuration:1.0]
[SKAction moveByX:100 y:50.0 duration:1.0]
ios原生游戏开发
[SKAction waitForDuration:1.0]
[SKAction moveByX:-100.0 y:-50 duration:1.0]];
[hull runAction:[SKAction repeatActionForever:hover];
return hull;}
” ” ”
”
)
client
3. newSpaceship SKSpriteNode *light1= [self newLight];
light1.position = CGPointMake(-28.0 6.0);
[hull addChild:light1];
SKSpriteNode *light2= [self newLight];
Light2.position = CGPointMake(28.0 6.0);
[hull addChild:light2];
4. newLight
- (SKSpriteNode *)newLight
ios原生游戏开发
{
SKSpriteNode *light = [[SKSpriteNode alloc] initWithColor:[SKColor yellowColor] size:C
SKAction *blink= [SKAction sequence:@ [
[SKAction fadeOutWithDuration:0.25]
[SKAction fadeInWithDuration:0.25]];
SKAction * blinkForever = [SKAction repeatActionForever:blink];
[light runAction:blinkForever];
return light;
}
。
Sprite Kit
。
f !
1. newSpaceship
ios原生游戏开发
hull.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:hull.size];
2. newSpaceship hull.physicsBody.dynamic = NO;
。
3. createSceneContents SKAction * makeRocks = [SKAction sequence:@ [
[SKAction performSelector:@selector(addRock) onTarget:self]
[SKAction waitForDuration:0.10 withRange:0.15]
]];
[self runAction:[SKAction repeatActionForever:makeRocks];
”
4. addRock static inline CGFloat skRandf() {
return rand()/(CGFloat)RAND_MAX;
}
ios原生游戏开发
static inline CGFloat skRand(CGFloat low, CGFloat high) {
return skRandf()*(high - low) + low;
}
- (void)addRock {
SKSpriteNode *rock = [[SKSpriteNode alloc] initWithColor [SKColor brownColor] size:CG rock.position = CGPointMake(skRand(0, self.size.width),self.size.height-50);
= @“rock”;
rock.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:rock.size];
esPreciseCollisionDetection = YES;
[self addChild:rock];
}
。
。 。
, Sprite Kit
5. didSimulatePhysics
- (void)didSimulatePhysics
ios原生游戏开发
{
[self enumerateChildNodesWithName:@“rock” usingBlock:^(SKNode *node, BOOL *stop){ if (node.position.y <0)
[node removeFromParent];
}]; }
Sprite Kit
OS X OS X
delegate 、
、 。
!!
正在阅读:
Sprite Kit编程指南06-11
行政沟通中的障碍与解决对策研究正文、结束语、文献、致谢03-11
这就是我的帽子作文400字06-26
参观浪潮公司有感10-18
我和婆婆的战争时代02-20
第二十六课 科里亚的木匣(1)01-10
树立实践育人理念12-24
2016-2021年中国混合肥料行业市场调查及投资前景预测报告05-20
新自觉能动与自强不息04-13
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 编程
- 指南
- Sprite
- Kit
- 人教版七年级上册《历史与社会》复习提纲
- 四川省自贡市贡井区成佳中学校2019-2020学年九年级上学期第二次月考数学试题(无答案)
- 保健酒市场分析及市场推广方案
- 四川省自贡市贡井区成佳中学校2020-2021学年七年级上学期第一次月考数学试题(无答案)
- 最新2016-2017年六年级上册数学期末试卷及答案
- 第2讲┃ 实数的运算与实数的大小比较
- 如何处理中国文化与外来文化的关系
- 08届高三数学三角函数的化简求值与证明
- 解酒的一些简单方法
- 苏教版三年级数学上册期末归类复习4
- 我国碳交易市场的现状、问题及发展对策
- 奔驰汽车经销商终端活动指导
- 年度安全学习、总结、工作安排专题会议纪要
- 塑料在高频等离子体中的热解气化研究
- 电化学高考试题大全
- 安卓系统手机使用技巧锦集
- 国家级贫困县里的防滑链厂
- Book6 Unit4 词汇学案
- 大英图书馆英文演讲
- 成人高考高起点英语复习题一