ゲームアルゴリズムコレクション for iOS
2015年4月11日紙版発売
2015年4月15日電子版発売
松浦健一郎,司ゆき 著
B5変形判/528ページ
定価3,630円(本体3,300円+税10%)
ISBN 978-4-7741-7309-2
ただいま弊社在庫はございません。
書籍の概要
この本の概要
アクション,シューティング,パズル,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
- 参考ゲーム一覧
- おわりに
この本に関連する書籍
-
ゲームプログラマのためのコーディング技術
多くの機能を持つゲームのプログラムは,巨大で複雑になりがちです。また,コードの保守,機能追加などの工程には複数のプログラマが関わることになります。そのため,...
-
エンジニアのためのUnity実践リファレンス 〜 ゲーム開発にすぐに役立つスクリプト入門
Unityはゲームエンジンとして多くの機能を持ち,ゲーム製作の現場で多くの支持を得ています。エディタの操作から簡単にゲームを作成することはできますが,本格的なオリ...
-
cocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Android
スマートフォンゲームを開発したい人,必読! 実際に遊べるサンプルを参考にさまざまなジャンルのゲーム制作に挑戦してみよう 本書はC++での開発をベースにパズルゲ...
-
Unityによる2Dゲーム開発入門〜プログラミング初心者がゲームを公開する最短コース
スマートフォンユーザを中心に2Dゲーム(カジュアルゲーム)市場は盛り上がりを見せています。3Dゲームに比べリソースの管理がかんたんですので,アイデア次第でヒット...