ゲームプログラミング入門 本格的なシューティングゲームを実現するタスクシステム 複数の処理を管理・実行する仕組み ひよこ[著] 更新日: 2006/07/24 公開日: 2006/02/02 C++ Windows Tweet ダウンロード サンプルファイル (485.3 KB) 目次 Page 1 はじめに 対象読者 必要な環境 タスクシステムの設計 Page 2 タスクシステムの定義 タスクリストの初期化 タスクの生成・追加 タスクの削除 タスクリストのデフラグ 全てのタスクを実行 自分以外のタスクを削除 タスクリストの解放 優先度の変更 メモリ領域の内容をテキストファイルに書き出す 使用中のタスクに割り当てているバイト数を返す 使用中のタスク数を返す Page 3 拡張タスクシステムの定義 タスクリストとゲームの初期化 全てのタスクを描画 指定したグループのタスクだけを描画 自分以外の指定したグループのタスクだけを削除 指定したグループのタスク数を返す 指定したグループの指定した順番のタスクを返す 自分のデータを取得 コンストラクタ Page 4 タスクシステムを動かす 自機タスク 定数 コンストラクタ デストラクタ 描画関数 処理関数 移動させる 耐久力を減らす まとめ 参考文献 会員登録無料すると、続きをお読みいただけます 新規会員登録無料のご案内 ・全ての過去記事が閲覧できます ・会員限定メルマガを受信できます メールバックナンバー 新規会員登録無料 ログイン Page 1 はじめに 対象読者 必要な環境 タスクシステムの設計 Page 2 タスクシステムの定義 タスクリストの初期化 タスクの生成・追加 タスクの削除 タスクリストのデフラグ 全てのタスクを実行 自分以外のタスクを削除 タスクリストの解放 優先度の変更 メモリ領域の内容をテキストファイルに書き出す 使用中のタスクに割り当てているバイト数を返す 使用中のタスク数を返す Page 3 拡張タスクシステムの定義 タスクリストとゲームの初期化 全てのタスクを描画 指定したグループのタスクだけを描画 自分以外の指定したグループのタスクだけを削除 指定したグループのタスク数を返す 指定したグループの指定した順番のタスクを返す 自分のデータを取得 コンストラクタ Page 4 タスクシステムを動かす 自機タスク 定数 コンストラクタ デストラクタ 描画関数 処理関数 移動させる 耐久力を減らす まとめ 参考文献 次のページタスクシステムを動かす 1 2 3 4 PREV NEXT 修正履歴 2006/07/24 19:47 後処理関数を排除。基本クラスのデストラクタを仮想関数とすることで、派生クラスのデストラクタも呼び出されるようにした。 タスクを先頭に挿入するときに m_active を更新していなかったバグを修正(operator new および SetPriority)。 この記事は参考になりましたか? 0参考になった 印刷用を表示 Tweet ゲームプログラミング入門連載記事一覧 本格的なシューティングゲームを実現するタスクシステム 落ち物ゲームの作り方 第2回:「聖夜の落とし物」編 落ち物ゲームの作り方 第1回:「TETRA」編 もっと読む この記事の著者 ひよこ(ヒヨコ) 職業ゲームプログラマーを志す学生です。 ※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です この著者の最近の執筆記事 この記事は参考になりましたか? 0 参考になった この記事をシェア Tweet シェア CodeZine(コードジン) codezine.jp https://codezine.jp/static/common/images/czlogo4fb_ogp.png https://codezine.jp/article/detail/297 2006/07/24 19:47 Special Contents AD キャリアインタビュー AD おすすめ アクセスランキング 1 どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用 NEW 2 「Python 3 エンジニア認定データ分析実践試験」が発表、2024年から本試験実施 NEW 3 「Java21」で何ができる? 新機能とJava17以降の変更点を紹介 4 フルスタックのWebフレームワーク「Remix v2」がリリース 5 AWS、パフォーマンスが大幅に向上したAmazon EC2 M2 Pro Macインスタンスを一般提供 NEW 6 システム開発の限界を広げる可能性と魅力を秘めた、「高機能コンポーネント」導入のススメ 7 完璧なはずのコードがエラーで動かない! 二分探索で効率的にデバッグする方法 8 IT人材不足によりプロジェクトの進捗やサービス品質への影響は80%以上、ラグザスがIT人材に関する調査を実施 NEW 9 Webアプリケーション用Reactフレームワーク「Next.js 13.5」がリリース NEW 10 GitHub、AIアシスタントから自然言語でコーディング支援を受けられる「GitHub Copilot Chat」をすべての個人ユーザーに提供開始 NEW アクセスランキング 今日 月間 1 どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用 NEW 2 「Python 3 エンジニア認定データ分析実践試験」が発表、2024年から本試験実施 NEW 3 「Java21」で何ができる? 新機能とJava17以降の変更点を紹介 4 フルスタックのWebフレームワーク「Remix v2」がリリース 5 AWS、パフォーマンスが大幅に向上したAmazon EC2 M2 Pro Macインスタンスを一般提供 NEW 6 システム開発の限界を広げる可能性と魅力を秘めた、「高機能コンポーネント」導入のススメ 7 完璧なはずのコードがエラーで動かない! 二分探索で効率的にデバッグする方法 8 IT人材不足によりプロジェクトの進捗やサービス品質への影響は80%以上、ラグザスがIT人材に関する調査を実施 NEW 9 Webアプリケーション用Reactフレームワーク「Next.js 13.5」がリリース NEW 10 GitHub、AIアシスタントから自然言語でコーディング支援を受けられる「GitHub Copilot Chat」をすべての個人ユーザーに提供開始 NEW 1 VSCodeをプログラミングエディタとして強化しよう! 便利な設定や拡張機能を紹介 2 Python/C/C++向けライブラリ「StringZilla」が登場、SIMD命令を利用して文字列操作を高速化 3 個人開発を始めてみよう──個人開発の楽しさと大きなメリットは? 4 Microsoft、「Visual Studio for Mac」の提供を終了、最新版のサポートは2024年8月末まで 5 JavaScript/TypeScript開発のためのオールインワンキット「Bun 1.0」がリリース 6 「char」 ~マンガでプログラミング用語解説 7 東大松尾研発、ELYZAが商用利用可能な70億パラメータの日本語LLM「ELYZA-japanese-Llama-2-7b」を一般公開 8 テスト自動化成功の鍵「テスト自動化アーキテクチャ」、構築のポイントと考え方とは 9 Modular、Pythonのスーパーセットを目指すプログラミング言語「Mojo」のダウンロード提供を開始 10 Next.jsの新常識「App Router」を学ぼう! イベント CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。 新規会員登録無料のご案内 ・全ての過去記事が閲覧できます ・会員限定メルマガを受信できます メールバックナンバー 新規会員登録無料 ログイン アクセスランキング 1 どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用 NEW 2 「Python 3 エンジニア認定データ分析実践試験」が発表、2024年から本試験実施 NEW 3 「Java21」で何ができる? 新機能とJava17以降の変更点を紹介 4 フルスタックのWebフレームワーク「Remix v2」がリリース 5 AWS、パフォーマンスが大幅に向上したAmazon EC2 M2 Pro Macインスタンスを一般提供 NEW 6 システム開発の限界を広げる可能性と魅力を秘めた、「高機能コンポーネント」導入のススメ 7 完璧なはずのコードがエラーで動かない! 二分探索で効率的にデバッグする方法 8 IT人材不足によりプロジェクトの進捗やサービス品質への影響は80%以上、ラグザスがIT人材に関する調査を実施 NEW 9 Webアプリケーション用Reactフレームワーク「Next.js 13.5」がリリース NEW 10 GitHub、AIアシスタントから自然言語でコーディング支援を受けられる「GitHub Copilot Chat」をすべての個人ユーザーに提供開始 NEW アクセスランキング 今日 月間 1 どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用 NEW 2 「Python 3 エンジニア認定データ分析実践試験」が発表、2024年から本試験実施 NEW 3 「Java21」で何ができる? 新機能とJava17以降の変更点を紹介 4 フルスタックのWebフレームワーク「Remix v2」がリリース 5 AWS、パフォーマンスが大幅に向上したAmazon EC2 M2 Pro Macインスタンスを一般提供 NEW 6 システム開発の限界を広げる可能性と魅力を秘めた、「高機能コンポーネント」導入のススメ 7 完璧なはずのコードがエラーで動かない! 二分探索で効率的にデバッグする方法 8 IT人材不足によりプロジェクトの進捗やサービス品質への影響は80%以上、ラグザスがIT人材に関する調査を実施 NEW 9 Webアプリケーション用Reactフレームワーク「Next.js 13.5」がリリース NEW 10 GitHub、AIアシスタントから自然言語でコーディング支援を受けられる「GitHub Copilot Chat」をすべての個人ユーザーに提供開始 NEW 1 VSCodeをプログラミングエディタとして強化しよう! 便利な設定や拡張機能を紹介 2 Python/C/C++向けライブラリ「StringZilla」が登場、SIMD命令を利用して文字列操作を高速化 3 個人開発を始めてみよう──個人開発の楽しさと大きなメリットは? 4 Microsoft、「Visual Studio for Mac」の提供を終了、最新版のサポートは2024年8月末まで 5 JavaScript/TypeScript開発のためのオールインワンキット「Bun 1.0」がリリース 6 「char」 ~マンガでプログラミング用語解説 7 東大松尾研発、ELYZAが商用利用可能な70億パラメータの日本語LLM「ELYZA-japanese-Llama-2-7b」を一般公開 8 テスト自動化成功の鍵「テスト自動化アーキテクチャ」、構築のポイントと考え方とは 9 Modular、Pythonのスーパーセットを目指すプログラミング言語「Mojo」のダウンロード提供を開始 10 Next.jsの新常識「App Router」を学ぼう!