介绍
SpriteKit是苹果平台上独有的游戏框架,可以在Mac OS X、iOS、tvOS上方便的开发2D游戏应用,其上手简单、对Swift语言支持良好。尽管在跨平台方面不如人气颇高的Cocos2D、Unity等跨平台游戏框架,但是如果只是在iOS上制作2D游戏来说,是学习成本最低的游戏框架了。
接下来我将和大家一起探索一下SpriteKit的奇妙世界
First SpriteKit Game Application
Getting started
打开 Xcode,从主菜单中选择File\New\Project...选择iOS \Application\Game 模版并点击Next。
输入我们的游戏名ZombieConga,编程语言选择Swift,游戏技术选择SpriteKit,设备选择Universal。
现在我们已经创建了一个Sprite Kit游戏模版,现在我们来运行一下这个模版
在Sprite Kit中,scene包括来你的app中的所有screen,scene是Sprite Kit中SKScene的子类,现在我们的游戏只有一个scene:GameScene,打开GameScene.swift我们就能看到Hello world! Label和那些旋转的飞船的代码。现在我们不必理解他们,我们现在删除这些代码。仅保留如下内容:
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
backgroundColor = SKColor.blackColor()
}
}
didMoveToView()
方法是展现这个场景前的方法,在这里我们可以方便的做一些初始化动作,此处我们仅将背景设置为黑色。
由于我们的游戏需要横屏,所以我们在项目设置中,禁止竖屏
SpriteKit 模版会自动创建名为GameScene.sks.
的文件,你可以通过Xcode内置的编辑器编辑这个文件,就如同用InterfaceBuilder编辑界面一样,我们在这里不使用它,所以删除这个文件
接下来打开GameViewController.swift
文件,替换为如下内容
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let scene =
GameScene(size:CGSize(width: 2048, height: 1536))
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
override func prefersStatusBarHidden() -> Bool {
return true
} }
这样我们就改变了这个视图控制器的初始化方式,先前它会通过读取GameScene文件来初始化,修改后则是通过代码来初始化。
Universal app support
这里我们看到场景的大小为2048*1536,也就是iPad Air2的屏幕大小,这是为了实现对小屏幕设备的适配
iPad Retina [4:3 or 1.33]: Displayed as-is to fit the 2048x1536 screen size.
iPad Non-Retina [4:3 or 1.33]: Aspect fill will scale a 2048x1536 visible area by 0.5 to fit the 1024x768 screen.
iPhone 4S [3:2 or 1.5]: Aspect fill will scale a 2048x1366 visible area by 0.47 to fit the 960x640 screen.
iPhone 5 [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.56 to fit the 1136x640 screen.
iPhone 6 [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.64 to fit the 1334x750 screen.
iPhone 6 Plus [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.93 to fit the 1920x1080 screen.
Adding the art
打开Assets.xcassets
文件,删除自带的飞船图片,随后我们添加自己的图标及图片
Launch screen
随后我们来设置Launch screen,与一般iOS应用开发一样,我们通过自动布局,设置一个图片相对四周距离为0,设置图片和填充方式
这样我们的游戏框架就算做好了,下节我们来开始做游戏内容
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。