2007年5月16日水曜日

あらためてサンプルプログラム

C# をザッと勉強したので、再度サンプルプログラム(WindowsGame1)をみると構造がよくわかりました。

using Microsoft.Xna.Framework は使用する名前空間の宣言かー なるほどなるほど(レベル低!)

簡単に説明すると・・・というより入門書読んで自分でソース見た方が早いかも。入門書は個人との相性があるのでなんとも言えないのですが、私は前に書いた「スタートアップ C#」が雑誌感覚で読めるので好きです。ただ、索引がないので用語を調べるには不向きです。


C# とXNA のヘルプが充実しているので、キーワードや使用例などを参考にしました。

Game1.cs ソース  
Microsoft.Xna.Framework.Game 名前空間: Gameクラス、GameTimeクラス、GameDeviceManagerクラス、等を定義
Microsoft.Xna.Framework.Content名前空間: ContentManagerクラス、等を定義
Microsoft.Xna.Framework.Inpur名前空間: GamePadクラス、GamePadStateクラス、等を定義

this: this キーワードはクラスの現在のインスタンスを参照します。
override: override 修飾子は、継承したメソッド、プロパティ、インデクサ、またはイベントの抽象実装や仮想実装を拡張したり修飾したりする際に必要です。
base: base キーワードは、派生クラス内で基本クラスのメンバにアクセスするために使用されます。

Gameクラス(基本クラス)において、Initialize() は仮想メソッドとして実装されているので、Game1クラス(派生クラス)内で、override実装する必要があるといったことらしい。

GetStateメソッド: GamePadクラスで定義されたメソッド


Program.cs ソース
using ステートメント
:スコープを定義する。スコープの外部ではオブジェクトが破棄される。
Runメソッド : Gameクラス内で定義されたメソッド

実際のXNAソースを見ることで、抽象クラス、抽象メソッド、仮想メソッドがよくわかりました。

ただ、コンストラクター(Game1)において、ContentManager の引数(Services)がどこから来ているのか未だに不明??。だれか教えてください。

0 件のコメント: