SpriteKitではじめる2Dゲームプログラミング Swift対応(山下佳隆 村田知常 原知愛 近藤秀彦)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. SpriteKitではじめる2Dゲームプログラミング Swift対応

SpriteKitではじめる2Dゲームプログラミング Swift対応





形式:
書籍
発売日:
ISBN:
9784798139517
価格:
本体2,980円+税
仕様:
B5変・400ページ
分類:
プログラミング・開発

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

SpriteKitは、iOSに標準で組み込まれている2Dゲーム開発用のフレームワークです。SpriteKitフレームワークを使うと、ゲームキャラクターや物体を表示して動かすスプライト処理や重力をシミュレートする物理シミュレーション処理、爆発などのエフェクトを実現するパーティクル処理など、2Dゲームで必要となる機能を簡単に作り込むことができます。

本書は、Apple標準のプログラミング言語SwiftとSpriteKitフレームワークを使って6つのゲームを作りながら、2Dゲームプログラミングの基本と定番テクニックを学ぶ書籍です。

さまざまな物体をタワー状に積んでいく積み上げゲーム、パックマン風のドットイートゲーム、Flappy bird風の横スクロールアクション、加速度センサによるジャンプ系ゲーム、AIを使ったリバーシなど、人気6ジャンルのゲームを作ります。このゲーム作りを通じて、Swift言語とSpriteKitフレームワークの基本に加えて、人気・定番2Dゲームの作り方とその開発技法を学びましょう。


第1章 ゲーム開発の準備
第2章 Swiftの基本
第3章 積み上げゲームを作ろう――SpriteKitの基本
第4章 横スクロールアクションゲームを作ろう――SKActionをつかいこなす
第5章 ピンボールゲームを作ろう――物理エンジンを極める
第6章 ジャンプゲームを作ろう――加速度センサーの利用
第7章 ドットイートゲームを作ろう――タイルを使ったマップ描画
第8章 リバーシを作ろう――AIの作り方

付属データはこちら

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

  • 誌面とサンプルプログラムについて

    本書刊行後にSwiftがバージョンアップされましたが、下位バージョンと互換性のない仕様変更があるため、本書のサンプルプログラムの一部でエラーが発生します。
    お使いのSwiftのバージョンに合わせて、以下いずれかのサンプルプログラム等をダウンロードしてください。

    ・Swift 2.1.1/Xcode 7.2対応のサンプルプログラム
    ・Swift 1.2/Xcode 6.3対応のサンプルプログラム

    サンプルプログラム等は「ダウンロード」ページで提供しています。


  • 89ページ Custom Classの変更について

    89ページ「クラスの変更」の「MEMO」の下の文章2~3行目に「Custom Class のClass の部分に灰色でUIView と書かれていますが、ここを「SKView」に変更します。」と記載がありますが、Custom Classの変更時には、(「SKView」がClass欄の選択肢には表示されないため)Class欄に「SKView」と手入力してください。
    ただし、以下の設定を行なうことで、Class欄の選択肢に「SKView」を表示することもできます。

    ★Custom Classの選択肢に「SKView」を表示する方法
    以下の手順でプロジェクトにフレームワークを追加することで選択肢に表示することができます。

    1. プロジェクトナビゲータ最上部のプロジェクト名(HelpNagoyaSpecialty)が書かれた部分をクリックし、プロジェクトの設定を
      表示します
    2. エディタ最上部のタブは「General」を選択します
    3. 「Linked Frameworks and Libraries」の「+」ボタンをクリックします
    4. 一覧の中より「SpriteKit.framework」を選択し「Add」ボタンをクリックします

    これでStoryboardに戻り、Custom Classを変更する際には「SKView」が選択肢に含まれるようになります。

  • 142~146ページまでのコードを実行したが、背景画像がシミュレーターの大きさに合わない

    iPhone 6またはiPhone 6 Plusサイズのシミュレーターで確認すると背景画像が少し小さくなります。
    背景画像が足りなくなった部分は、147ページ以降で岩山などを配置するため見えない部分となります。そのまま進めても問題はありません。
    もし気になる場合は、iPhone 5sサイズのシミュレーターで確認してください。iPhone 5sサイズでちょうど収まるサイズとなっています。

    なお、画像のサイズを大きくすると、その分、処理負荷も高くなります。ゲーム制作においては画像を多用するケースが多いので、なるべく最低限のサイズで画像を用意するのが望ましいです。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2017年08月08日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 000
「追加情報」があります
本書刊行後におこなわれたSwiftのアップデートに対する変更や、その他の補足事項等は、「追加情報」のページに掲載しています。そちらも併せてご覧ください。
2015.06.08
1刷 128
「repeatActionForeverメソッド」の「利用例」
// 10回リピートするSKActionを生成
//永遠にリピートするSKActionを生成
2017.08.08
1刷 326
出力結果の下の文章 1行目
座標{3,2}は、初期配置されている4つの石の右下の白(2)、その左側の位置にあたります。
座標{3,2}は、初期配置されている4つの石の下の白(2)、その左側の位置にあたります。
2016.01.04
1刷 332
リスト8.21、1~3行目
/// マス目のサイズ let SquareHeight: CGFloat = 38.0 let SquareWidth: CGFloat = 38.0
/// マス目のサイズ let SquareHeight: CGFloat = 45.0
let SquareWidth: CGFloat = 45.0 /// 画面中心と盤面の中心位置のy軸方向のズレ let CentralDeltaY: CGFloat = 10.0

サイズの誤りおよび定数未定義
2015.03.11
1刷 334
リスト8.23、下から5行目
y: -SquareHeight * CGFloat(BoardSize) / 2
y: -SquareHeight * CGFloat(BoardSize) / 2 + CentralDeltaY

表示位置調整計算の漏れ
2015.03.11
1刷 341
リスト8.30のキャプション
リスト 8.30 canPlaceメソッド  GameScene.swift
リスト 8.30 canPlaceメソッド  Move.swift

canPlaceメソッドの定義場所が異なる
2015.03.11
1刷 345
リスト8.35のキャプション
リスト8.35 countCellsメソッド  GameScene.swift
リスト8.35 countCellsメソッド  Board.swift

countCellメソッドの定義場所が異なる
2015.03.11
1刷 351
リスト8.42、下から2行目
var switchTurnHandler: (() -> ())?
var nextColor: CellState!

switchTurnHandlerは不要(switchTurnHandlerはリスト8.62で定義)
2015.03.11
1刷 368
リスト8.57、下から5行目
// ゲーム終了時 self.gameFinishHandler?()
self.showGameResult()
2015.03.11
1刷 369
リスト8.58、上から3行目
self.board.makeMove(move)
if move != nil {   // 盤上に手を打つ   self.board.makeMove(move!) }

makeMoveメソッドシグネチャ変更
2015.03.11
1刷 369
リスト8.58、下から3行目
// ゲーム終了時 self.gameFinishHandler?()
// ゲーム終了時 self.showGameResult()
2015.03.11
1刷 373
リスト8.65、下から2行目
self.scene.gameFinishHandler = self.showGameResult
skView.presentScene(self.scene)

gameFinishHandler不要
2015.03.11