第一章:精灵

2018-01-21  本文已影响0人  KarenLoo

现在你知道 SpriteKit 是什么,以及为什么要使用它,是时候亲自尝试了!
你将在这本书中建立的第一个小游戏叫僵尸康茄(Zombie Conga)。 下面是完成后的样子:

Sprites-1.png

在僵尸康茄中,你会扮演一个想参加派对的快乐僵尸!

幸运的是,你所占据的海滩拥有很多猫咪。你只需要咬它们,它们就会加入你的康茄队伍。

但要注意疯狂的猫主人!这些穿着红色衣服的女人,不允许任何人偷偷摸摸地碰她们的猫咪,她们会尽全力消灭僵尸。

你将在接下来的六章中分阶段构建这个游戏:

  1. 第一章,精灵:你现在在这一章!通过添加精灵来开始制作游戏的旅程:背景和僵尸。

  2. 第二章,跟随手指移动:你会让僵尸跟随你的手指在屏幕上移动,学习基础的2D矢量数学知识。

  3. 第三章,动作:你将猫和疯狂的猫主人加入游戏,以及基础的碰撞检测和游戏玩法。

  4. 第四章,场景:你将在游戏中添加一个主菜单,以及胜利和失败的场景。

  5. 第五章,镜头:你将使游戏从左到右滚动,最后添加康茄队伍。

  6. 第六章,标签:你会添加标签来显示僵尸的生命值和他的康茄队伍中猫咪的数量。

是时候开始康茄了!

开始

启动 Xcode 并从主菜单中选择 File > New > Project。 选择 iOS /Application/Game 模板,然后单击 Next。

Sprites-2.png

输入 ZombieConga 作为 Product Name,选择 Swift 作为 Language,SpriteKit 作为 Game Technology,然后单击 Next。

Sprites-3.png

选择硬盘上的某个位置来保存项目,然后单击 Create。 这时,Xcode 将为你生成一个简单的 SpriteKit 初始项目。

看看 SpriteKit 做了什么。 在 Xcode 的工具栏中,选择 iPhone 8 Plus 并单击 Play。

Sprites-4.png

在简短的启动画面之后,你会看到一个标签,上面写着“Hello, World!”。 当您将鼠标拖过屏幕时,文字将会弹起,并出现一些旋转的圆角矩形。

Sprites-5.png

在 SpriteKit 中,称为场景的单个对象控制着你应用的每个“屏幕”。 场景由 SpriteKit 的 SKScene 类表示。

现在,这个应用程序只有一个场景:GameScene。 打开 GameScene.swift,你会看到显示标签和旋转的圆角矩形的代码。

现在无须理解这些代码 —— 你将会把它们全部删除,逐步地构建你的游戏。

现在,删除 GameScene.swift 中的所有内容,并将其替换为:

import SpriteKit

class GameScene: SKScene {
  override func didMove(to view: SKView) {
    backgroundColor = SKColor.black
  }
} 

请注意,GameScene 是 SKScene 的一个子类。 SpriteKit 在视图中呈现场景之前调用方法 didMove(to:); 这是对场景内容进行初始设置的地方。 在这里,你只需将背景颜色设置为黑色即可。

僵尸康茄被设计为在横屏模式下运行,所以你需要为此配置。 在项目导航栏中选择 ZombieConga project,然后选择 ZombieConga target。 转到 General 选项卡,确保只选中了 Landscape Left 和 Landscape Right。

你在这里同时选中 Requires full screen 选框。 如果你想创建一个只支持横屏的应用程序,并且表示这个游戏不会提供多窗口支持,那么这是必需的。

Sprites-6.png

你还需要进行一项配置,以便应用程序可以在 iPad 上以横屏模式运行。 打开 Info.plist 并找到 Supported interface orientations (iPad)。 删除 Portrait(bottom home button) 和 Portrait(top home button),只保留横屏选项。

SpriteKit 项目模板会自动创建一个名为 GameScene.sks 的文件。 你可以使用 Xcode 的内置场景编辑器来编辑这个文件,以可视化的方式布置你的游戏场景。 将场景编辑器想象成一个简单的 Interface Builder。

你将在第七章“场景编辑器”中了解关于场景编辑器的信息,Zombie Conga 中你不会使用它,因为通过编写代码的方式创建精灵更容易且更有启发性。

按住 Control 键单击 GameScene.sks,选择 Delete,然后选择 Move to Trash。 同时,也删除 Actions.sks,在这个游戏中你不需要这个文件。

由于你不再使用这些文件,因此你必须适当修改模板代码。

打开 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 var prefersStatusBarHidden: Bool {
    return true
  }
}

之前,视图控制器从 GameScene.sks 中加载场景,而现在通过调用 GameScene 上的初始化方法来创建场景。

请注意,当你创建场景时,你将使用 2048x1536 大小的尺寸,并将缩放模式设置为 aspectFill。

现在快速讨论下如何设计这款游戏以支持各种型号的设备。

上一篇 下一篇

猜你喜欢

热点阅读