書籍概要

ゲームアルゴリズムコレクション for iOS

著者
発売日
更新日

概要

アクション,シューティング,パズル,RPGといった幅広いジャンルのゲームで見られる特徴的な動きを,豊富な図解と平易なプログラム例とともに数多く解説しています。iOSではObjective-Cが広く使われていますが,ゲームプログラミングに適した機能を備えていることと,他機種との間でプログラムの移植がしやすいことから,本書では主にC++を使用しています。本書の内容を理解すれば,他環境(Unity, Cocos2d-xなど)でのゲーム開発にも通用するゲームプログラミングの知識が身につきます。

こんな方におすすめ

  • スマートフォン用やタブレット用のゲームを作りたい開発者(実務とホビーの両方)
  • ゲーム開発の初心者程度の知識はあるが,応用できるゲームの仕組みについてもっと詳しく知りたい人

目次

  • はじめに

Introduction iOSでゲームを開発するには

  • iOSにおける開発
  • 開発環境
  • プログラミング言語
  • 本書のプログラム
  • 本書のプログラムとデータの著作権

Chapter1 ゲームの基本となるアルゴリズム

  • 物体を生成する
    • 物体を生成するプログラム
    • 自機のプログラム
  • 物体を移動する
    • 移動する物体のプログラム
  • タッチ入力を検出する
    • タッチされた座標に物体を生成するプログラム
  • タッチ入力と物体の接触判定をする
    • タッチした物体を消すプログラム
    • 物体を生成するプログラム
  • 物体同士の衝突判定をする
    • 物体同士の衝突判定を行うプログラム
    • 物体を生成するプログラム
  • エフェクトを生成する
    • エフェクトを生成するプログラム
    • エフェクトを動かすプログラム
  • スコアを加算する
    • タッチすると消える敵のプログラム
    • 敵を生成するプログラム
    • スコアを表示するプログラム

Chapter2 アクションゲームのアルゴリズム

  • 落下する
    • 落下のプログラム
    • 自機を生成するプログラム
  • 床に乗る
    • 床に乗る自機のプログラム
    • 自機と床を生成するプログラム
  • ジャンプする
    • ジャンプする自機のプログラム
  • ジャンプの高さを調整する
    • ジャンプの高さを調整するプログラム
  • 2段ジャンプする
    • 2段ジャンプする自機のプログラム
  • 放物線ジャンプする
    • 放物線ジャンプを行う自機のプログラム
    • 自機とブロックを生成するプログラム
  • 床が落ちる
    • 床を落とす自機のプログラム
    • 落ちるブロックのプログラム
  • 床が移動する
    • 床に乗る自機のプログラム
    • 移動するブロックのプログラム
  • 敵を踏みつける
    • 敵を踏みつける自機のプログラム
    • 踏みつけられる敵のプログラム
  • トランポリンで高くジャンプする
    • トランポリンで高くジャンプする自機のプログラム
  • アイテムを拾う
    • アイテムを拾うプログラム
  • アイテムを拾うと強くなる
    • アイテムを拾うとサイズが変わる自機のプログラム
  • アイテムを投げる
    • アイテムを投げる自機のプログラム
    • 投げられるアイテムのプログラム
  • ゴムの張力でアイテムを撃つ
    • ゴムで撃たれるアイテムのプログラム
  • 画面端で跳ね返る
    • 画面端で跳ね返る自機のプログラム
  • 壁で跳ね返る
    • 壁で跳ね返るプログラム
  • 荷物を押して運ぶ
    • 自機がブロックを押すプログラム
  • 全方向に荷物を押して運ぶ
    • 自機がアイテムを全方向に押すプログラム
  • 荷物を持って運ぶ
    • アイテムを持って運ぶプログラム
  • 破壊できない障害物を生成する
    • 障害物に阻まれるプログラム
  • 破壊できる障害物を生成する
    • 障害物を破壊するプログラム
    • 破壊される障害物のプログラム
  • 敵が自機を追いかける
    • 追いかけてくる敵のプログラム
  • 敵が自機から逃げる
    • 逃げる敵のプログラム
  • 敵が自機を攻撃する
    • 攻撃する敵のプログラム
  • 傾き入力を利用した操作をする
    • 傾き入力で移動する自機のプログラム

Chapter3 シューティングゲームのアルゴリズム

  • スライド入力で自機を移動させる
    • スライド入力で移動する自機のプログラム
  • 自機を画面外に出さない
    • 自機を画面外に出さないプログラム
  • 背景をスクロールさせる
    • スクロールするエフェクトのプログラム
    • エフェクトを生成するステージのプログラム
  • 背景を多重スクロールさせる
    • 多重スクロールのプログラム
  • 弾を生成・移動・消去する
    • 弾のプログラム
  • 弾を生成するステージのプログラム
  • 自機が破壊される
    • 弾に破壊される自機のプログラム
    • 自機と弾を生成するプログラム
  • 自機狙い弾を発射する
    • 自機狙い弾のプログラム
  • 自機誘導弾を発射する
    • 自機誘導弾のプログラム
    • 自機誘導弾を発射するプログラム
  • n-way弾を発射する
    • n-way弾のプログラム
    • n-way状に物体を発射するプログラム
  • 円形弾を発射する
    • 円形弾のプログラム
    • 円状に物体を発射するプログラム
  • 弾の動きを変化させる
    • 動きが変化する弾のプログラム
    • 自機と弾を生成するプログラム
  • 分裂弾を発射する
    • 分裂弾のプログラム
    • 分裂弾を発射するプログラム
  • 加速弾を発射する
    • 加速弾のプログラム
    • 加速弾を発射するプログラム
  • ショットを撃つ
    • ショットを撃つプログラム
    • 武器を発射するプログラム
  • ショットを一発ずつ撃つ
    • ショットを一発ずつ撃つプログラム
  • 敵を生成・移動・破壊する
    • 敵のプログラム
    • 敵を生成するプログラム
  • アイテムを自動回収する
    • アイテムを自動回収するプログラム
    • アイテムを配置するプログラム
  • 直進レーザーを発射する
    • 直進レーザーのプログラム
    • 直進レーザーを発射する自機のプログラム
  • 誘導レーザーを発射する
    • 誘導レーザーのプログラム
    • 誘導レーザーを発射するステージのプログラム
  • ロックオンする
    • ロックオンのプログラム
    • 自機と敵を生成するプログラム
  • ボムを発射する
    • ボムでダメージを受ける敵のプログラム
    • ボムを爆発させるプログラム
    • ボムを発射するプログラム
  • バリアを生成する
    • バリアのプログラム
    • バリアを生成するプログラム

Chapter.4 パズルゲームのアルゴリズム

  • スライド入力でピースを移動する
    • 基本となるピースのプログラム
    • スライド入力で移動するピースのプログラム
  • スライド入力でピースを移動する
    • 基本となるピースのプログラム
    • スライド入力で移動するピースのプログラム
  • スライド入力で隣接するピースを入れ替える
    • 入れ替わるピースのプログラム
    • 入れ替わるピースを配置するプログラム
  • スライド入力で任意個のピースを入れ替える
    • 任意の個数が入れ替わるピースのプログラム
  • ピースをなぞって選択する
    • なぞって選択するピースのプログラム
  • 距離の近いピースをなぞって選択する
    • 互い違いに配置されたピースをなぞって選択するプログラム
  • ピースを並べて消す
    • ピースを並べて消すプログラム
  • ピースを落とす
    • ピースを落とすプログラム
    • 落ちるピースを配置するプログラム
  • スライド入力でピースを収穫する
    • スライド入力で消えるピースのプログラム
  • 一定数のピースが連続すると消える
    • 一定数のピースが連続したことを調べるプログラム
  • 四つ組ピースを生成する
    • 四つ組ピースのプログラム
    • 四つ組ピースを管理するプログラム
    • 四つ組ピースを生成するプログラム
  • 四つ組ピースを落とす
    • ピースを配列に登録するプログラム
    • ピースの接触判定を行うプログラム
    • ピースを落下させるプログラム
  • 四つ組ピースを移動・回転させる
    • 四つ組ピースを移動・回転させるプログラム
  • 四つ組ピースを横一行に並べて消す
    • ピースを横一行に揃えて消すプログラム
  • 四つ組ピースが落下する先の候補を表示する
    • 落下先の候補を表示するプログラム
    • 候補をタッチしたときのプログラム
  • ピースを積み重ねる
    • ピースを積み重ねるプログラム
    • 積み重なるピースを生成するプログラム
  • 行動力でプレイ回数を制限する
    • 行動力の増加と減少を行うプログラム
  • スコアを段階的に上昇させる
    • スコアの段階的な上昇と記録を行うプログラム

Chapter.5 ロールプレイングゲームのアルゴリズム

  • タッチ入力した場所までキャラクターを移動する
    • タッチ入力で移動する自機のプログラム
  • 剣を持つ
    • 自機が持つ剣のプログラム
    • 剣を持つ自機のプログラム
  • 剣を振る
    • 自機が振る剣のプログラム
    • 剣を振る自機のプログラム
  • 剣で敵を倒す
    • 剣で倒される敵のプログラム
    • 敵を配置するプログラム
  • 迷路を表示し,自機を移動させる
    • 迷路を歩く自機のプログラム
    • 迷路を作るプログラム
  • マップを切り替える
    • マップを切り替えるプログラム
  • ランダムエンカウントで敵に遭遇する
    • ランダムエンカウントのプログラム
  • シンボルエンカウントで敵に遭遇する
    • シンボルエンカウントのプログラム
  • ゲージを表示する
    • ゲージを表示するプログラム
  • コマンドを表示・選択する
    • コマンドの表示と選択を行うプログラム
    • コマンド実行時のエフェクトのプログラム
  • 装備やアイテムを管理する
    • 装備のプログラム
    • 装備画面のプログラム

Appendix ゲームプログラムの基盤

  • ファイル構成
  • ビューの制御
    • ビューの初期化
    • ビューの破棄
    • ビューの更新
    • ビューの描画
  • ゲーム本体のクラス
    • 初期化
    • 移動
    • 描画
    • 画面の消去
  • シェーダの制御
    • バーテックスシェーダ
    • フラグメントシェーダ
    • シェーダの管理
    • シェーダのコンパイル
    • シェーダのリンク
    • シェーダの検証
    • シェーダの初期化と破棄
    • 描画前と描画後の処理
    • テクスチャの描画
  • テクスチャの管理
    • テクスチャの初期化
    • テクスチャの取得
  • タッチ入力
    • タッチ入力の管理
    • タッチ入力の検出
    • タッチ入力状態の更新
  • 傾き入力
    • 傾き入力の検出
    • 色の表現と演算
  • ベクトル
    • ベクトルの表現と演算
  • クォータニオン
    • クォータニオンの表現と演算
  • その他の数学機能
    • 各種の数学機能を提供する定数と関数
  • 乱数の生成
    • 乱数を生成する関数
  • 物体
    • 物体の管理
    • 物体の描画
  • 物体のリスト
    • 物体のリストを表すクラス
  • 物体の生成
    • 物体を生成する関数
  • 衝突判定
    • 物体間の衝突判定
  • 設定のセーブとロード
    • 設定のセーブとロードを行うクラス
  • 効果音の再生
    • 効果音を再生する例
    • 効果音のクラス
    • 効果音の初期化
    • 効果音の取得
  • プログラム実行画面一覧
    • Chapter.1
    • Chapter.2
    • Chapter.3
    • Chapter.4
    • Chapter.5
    • Appendix
  • 参考ゲーム一覧
  • おわりに

サポート

ダウンロード

以下のリンク先に、本書掲載のサンプルプログラムを公開しています。
動作の確認などにご活用ください。

ダウンロード
GaiosSample.zip

商品一覧