Downloadliste

Projektbeschreibung

XNA3.1(C#)用のシンプルなゲーム開発者向け ライブラリ『danmaq Nineball-Library』を製作・頒布します。

別に内部でなんか凄い処理を行っているわけではなく、それなりの規模の ゲームを作るために最低限必要だろうと思われるアルゴリズムをまとめた ライブラリです。XBOX360とWindowsでなるべく同じ感覚でゲームが 作れるような設計を目指しています。例えば……

  • WindowsジョイスティックとXBOX360コントローラを同じ感覚で扱えたりとか
  • ランタイムの有無を判別してGamerServices.Guideの機能をWindows機能で(ちょっとだけ)再現したりとか
  • 出来る限り#if XBOX360を拝まないコードが書けたりとか
  • その他諸々

★ライブラリに入っている主要な機能一覧を一部だけ紹介(XNA3.1版)

  • State パターンのためのインターフェイス完備
  • シーン、タスク、Fryweight、コルーチン管理機能、部分責任コレクション(勝手に命名)機能
  • A/S比を維持した画面の拡大縮小機能(パン&スキャン/レターボックス対応)
  • グラデーションフォント表示機能(色/拡大率/回転/相対座標)
  • ボタン入力機能(Windows Joystick/XBOX360 GamePad/Keyboard & ChatPad/Mouse)、ボタンアサイン/独自のアクションマッピング入力機能
  • 内分カウンタなどの便利な関数群
  • ライブラリの使い方が判り易い、シンプルなサンプルゲーム付属

ちょっと古いけど、Adobe FlexSDK3.2(AS3)版も用意しています。 気が向けばC++とObjective-C 2.0にも移植するつもりです。(ただしCore部分だけ)

Systemanforderungen

Die Systemvoraussetzungen sind nicht definiert

Veröffentlicht: 2010-07-30 15:30
nineball-Library for XNA on C# 0.1.0.38 (3 files Verstecken)

Versionsanmerkungen

・全体の処理をタスクベースから状態機械ベースに変更しました。
・入力機能の内部機構を大幅に変更。
・静的な擬似乱数ジェネレータを追加。
・部分責任コレクションを追加。

今回のバージョンは内部使用刷新のため、旧版との互換性がありませんが、
old名前空間のクラスを使用することである程度の下位互換は実現できます。

Änderungsprotokoll

■2010/5/27 0.1.0.38
状態の変更を即時反映しないようにした。
結果、setup()内においても次の状態を設定できるようにした。
(但し、setup()内だけで状態を切り替え続けると、
ウェイトが入らず行儀の悪いプログラムとなるので推奨しない)
シーン管理クラスはゲームコンポーネントである必要がないので、継承を外した。
一部コメント不備の修正。

■2010/5/19 0.1.0.37
部分管理コレクションの応用クラスとしてシーン管理クラスを追加。

■2010/3/18 0.1.0.36
フェーズ・カウンタ管理クラス、及び音量管理を構造体化。

■2010/3/17 0.1.0.35
入力制御・管理コレクションで、方向ボタン入力の共存が出来ない不具合を修正。
方向ボタンの入力状態を示す構造体を追加。

■2010/3/15 0.1.0.34
CStaticRandom.reset()メソッドで、二重にRandomオブジェクトを生成していたので、抑制した。

■2010/2/26 0.1.0.33
Flyweightパターンの簡易実装クラスを作成。
部分責任コレクションに提携処理機能追加。

■2010/2/20 0.1.0.32
スプライトバッチ管理クラスの描画情報を再利用するようにした。
CInputManagerでコントローラ認識前にボタン割り当て定義をすると落ちる不具合を修正。

■2010/2/12 0.1.0.31
ゲーム コントローラ自動認識機能を使用するとキャストミスで落ちる不具合を修正。

■2010/2/9 0.1.0.30
状態を持つオブジェクトに親オブジェクトを設定した場合、デフォルトの
privateMemberプロパティの戻り値として、親オブジェクトのprivateMemberを返すようにした。
入力機能において、ボタン入力が反応しない不具合を修正。
入力機能コレクションから自動認識AI状態を分離。
入力機能コレクションにおいて、一度でも方向ボタン入力があると、
ずっと入力し続ける状態になってしまう不具合を修正。

■2010/2/5 0.1.0.29
方向ボタン取得機能において、ボタンと同様に押し離しした瞬間を検出できるようにした。

■2010/2/4 0.1.0.28
各入力制御・管理クラスを少ないコードで使用するためのラッパーを実装完了。

■2010/2/3 0.1.0.27
旧バージョンの各機能に対し、Obsolete属性を付加した。
各入力制御・管理クラスを少ないコードで使用するためのラッパーを半分ほど実装。
特定条件でキーボード・ゲーム コントローラ入力機能のボタン割り当ての際
ボタン変化のイベントが発生しない不具合(というより設計仕様上の欠陥に近い)を修正。

■2010/2/2 0.1.0.26
レガシ ゲーム コントローラ入力機能実装完了。
状態を持つオブジェクトクラスの名前タグ機能を廃止。
各入力制御・管理クラスを少ないコードで使用するためのラッパーをガワだけ作成。

■2010/1/29 0.1.0.25
レガシ ゲーム コントローラ入力のアナログ入力のための補助機能を実装。

■2010/1/29 0.1.0.24
レガシ ゲーム コントローラ入力の基底状態を作り直し、ガワだけ作成。
入力周りの列挙体を細分化した。

■2010/1/28 0.1.0.23
旧バージョンのセーブデータI/O機能を複数ファイルの読み書きに対応した。

■2010/1/27 0.1.0.22
旧バージョン部分にて、一部新バージョンで置き換えられる部分があったので置き換えた。
レガシ ゲーム コントローラ入力における方向ボタン取得機能をガワだけ実装。

■2010/1/26 0.1.0.21
入力制御・管理クラスに方向ボタン取得機能を追加。
現在、キーボード及びXBOX360ゲーム コントローラのみサポート。

■2010/1/25 0.1.0.20
レガシ ゲーム コントローラ入力機能を半分だけ実装。

■2010/1/24 0.1.0.19
キーボード・XBOX360チャットパッド用入力制御・管理クラスを追加。
入力制御・管理クラスのヌル実装を追加。
レガシ ゲーム コントローラ入力機能をガワだけ実装。
入力制御・管理コレクションの既定状態において、特定状況で規定以上の数の
ボタン状態を取得しようとして例外が発生する可能性がある不具合を修正。

■2010/1/23 0.1.0.18
旧バージョンのdanmaq Nineball Library互換クラスを追加。
名前空間を書き換えるだけである程度旧バージョンとソースレベル互換を保てます。
入力制御・管理コレクション用XBOX360ゲーム コントローラ自動認識状態・汎用自動認識待機状態を追加。
ソースを少しだけ整理。

■2010/1/22 0.1.0.17
部分責任リストの対象リストが読み取り専用状態である場合、例外を吐くようにした。
入力制御・管理クラスの基底インターフェイスのコレクションを作成。
XBOX360ゲーム コントローラの入力制御・管理クラスをガワだけ作成。

■2010/1/21 0.1.0.16
入力制御・管理クラスを一旦削除し、設計からやり直すことにした。
とりあえず基底インターフェイスを作成。

■2010/1/19 0.1.0.15
オブジェクトの状態が変化した時間を取得する機能を追加。

■2010/1/18 0.1.0.14
メインループの既定状態に深度バッファの有無を変更する機能を追加。
メインループの初期状態を任意の状態にカスタマイズできるようにした。

■2010/1/17 0.1.0.13
コーディングスタイル変更。

■2010/1/15 0.1.0.12
オブジェクトに親オブジェクトを設定する機能を追加。
ゲーム コンポーネント部分管理機能に、状態を持つオブジェクトを直接登録する機能を追加。

■2010/1/12 0.1.0.11
移動ボタンのベクトル算出機能追加。
レガシ ゲーム コントローラ入力機能の既定状態を作成、初期化処理を状態側に移動した。

■2010/1/11 0.1.0.10
レガシ ゲーム コントローラ入力機能を無効化するシンボル追加。

■2010/1/9 0.1.0.9
XBOX360ゲーム コントローラ入力機能を最低限の機能だけ実装完了。
レガシ ゲーム コントローラ入力機能を半分だけ実装。
一部文字列をリソースに隔離した。
Windows版でもXboxガイドヘルパが有効になっていた不具合を修正。
(XNAGSの入っているPCでないとコンパイルはおろか、プレイもできなくなる)

■2010/1/8 0.1.0.8
XBOX360ゲーム コントローラ入力機能を半分だけ実装。

■2010/1/7 0.1.0.7
メインループのデフォルト状態で持っていたフィールドの大半をオブジェクト側へ移行した。
キーボード入力機能実装。
XBOX360及びレガシ ゲームコントローラ入力機能をガワだけ実装。

■2010/1/6 0.1.0.5
静的な擬似乱数ジェネレータを追加。
フォントクラスにタイマー機能を追加。

■2010/1/5 0.1.0.4
グラデーション機能付きのフォント描画機能追加。
アセット遅延読み込み機能追加。
部分責任コレクション機能追加。
ゲームコンポーネント機能で、ゲームクラスに即時登録しない機能を追加。
ジェネリックスな状態機械クラスのインターフェイスを追加。
コルーチン管理機能のDispose()メソッドを呼ぶと、コルーチンの即時全削除をするようにした。
XNA・ビデオ環境検証機能にて、検証後自動的に次の状態へ移行する機能を追加。
算術演算機能・内分カウンタ機能のメソッドの整理。

■2009/12/29 0.1.0.2
音量管理機能、グラデーション機能、FPS計算機能、XBOXガイド補助機能、メッセージボックス機能、
解像度補完機能、ログ出力機能、スプライトバッチ補助機能、コルーチン管理機能を旧版より移植。

■2009/12/28 0.1.0.1
ジェネリックスな状態機械クラスを作成。
フェーズ・カウンタ管理クラスを作成。
メインループ クラスを作成。
ゲーム コンポーネントとエンティティ間のアダプタ クラスを作成。

■2009/12/27 0.1.0.0
状態機械ベースに作り直してみるテスト。