Edited at

SwiftとSpriteKitを使って1分でゲームを作る

More than 5 years have passed since last update.


Swift+SpriteKit

WWDC2014で iOSアプリの新たな開発言語である「Swift」が登場しました。

今回はゲームのフレームワーク「SpriteKit」を使って簡単なゲームを作ってみたいと思います。


Xcode6 Beta をダウンロードします.

iOSDevCenterからDLできます。

(iOS Developer Programへの登録(有償)が必要です)

https://developer.apple.com/devcenter/ios/index.action


iOS>Application>Gameを選択します

スクリーンショット 2014-07-03 23.17.42.png


ProductNameを適当に入力、Languageに「Swift」を選択、GameTechnologyを「SpriteKit」にします

スクリーンショット 2014-07-03 23.18.15.png


プロジェクトが開きます。

今回使用するのはGameScene.swift(ゲームロジック)です。確認してみましょう。


画像を用意してプロジェクトフォルダにDrag&Dropで突っ込みます。入れた画像は右下のwindowに表示されます。

スクリーンショット 2014-07-04 0.49.42.png


画像を移動するときはCopy Imagesにチェックを入れるようにしましょう

スクリーンショット 2014-07-04 0.49.49.png


必要な画像はすべて読み込みます

スクリーンショット 2014-07-04 0.49.57.png


今回は「シアンのゆりかご」

http://cyanyurikago.web.fc2.com/

からフリーの画像素材

背景 "bg-space1.png"

プレイヤー "thunderbird.png"をお借りしました。

ターゲットマーカーはお手製です。 "marker.png"

marker.png



GameScene.swiftにゲームロジックを書きます。

(ユーザーがタップした場所にターゲットマーカーが表示され、

それに追従してプレイヤーが移動するという簡単なゲームサンプルです)

import SpriteKit

class GameScene: SKScene {

var player : SKSpriteNode!
var targetMarker : SKSpriteNode!

override func didMoveToView(view: SKView) {
//背景画像。SKSPriteNodeで画像を読み込む。
let backGround = SKSpriteNode(imageNamed:"bg-space1.png")
self.addChild(backGround)
backGround.position = CGPointMake(500,300)

//画面をタッチした場所を示すターゲットマーカー
self.targetMarker = SKSpriteNode(imageNamed:"marker.png")
self.addChild(targetMarker)
self.targetMarker.position = CGPointMake(300,300)

//プレイヤーとなるキャラクター画像
self.player = SKSpriteNode(imageNamed:"thunderbird.png")
self.addChild(player)
self.player.position = CGPointMake(300,300)
}

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
//タッチした場所にターゲットマーカーを動かす
self.targetMarker.position = location
}
}

override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
//ターゲットマーカーの場所にプレイヤーを移動させる。
if(self.player.position.x < self.targetMarker.position.x){
self.player.position.x += 1;
}else if(self.player.position.x > self.targetMarker.position.x){
self.player.position.x -= 1;
}
if(self.player.position.y < self.targetMarker.position.y){
self.player.position.y += 1;
}else if(self.player.position.y > self.targetMarker.position.y){
self.player.position.y -= 1;
}
}
}


シュミレーターで実行してみます。

ぉぉお、動いたー!

スクリーンショット 2014-06-06 18.16.27.png


おしまい

ということで、SwiftとSpriteKitを使えば、非常に簡単にiOS用のゲームを作成することができます。

Cocos2d-xを使っていた人などは違和感なく使うことができそうです。Let's enjoy Swift!!