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
2016-2022年最新苏教版一年级上册数学教案全册教案04-06
福建省劳动和社会保障厅等关于处理省属国有企业改制改组中劳动关04-05
梁氏家族世系排列综述05-15
星空下的公园作文600字06-20
太原市文明交通行动计划实施方案05-18
jfnmiAAA自然辩证法-2022版课后思考题答案04-06
学校行政权力运行流程图06-22
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 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 词汇学案
- 大英图书馆英文演讲
- 成人高考高起点英语复习题一