たまにはプログラミングの日記でも。
今回は、C#とManagedDirectXを利用した、広島大学ゲーム制作同好会オリジナルのゲームライブラリであるGSDKを用いたゲームの作り方の参考になるんじゃないかと思って、ソースを配布します。
詳しくは、GSDK開発者でGSDの会長でもあるつーささんのページへこっちへ。
http://tu3.jp/
まあ、ここでは自分が実際にゲームを作っていく上で気づいたことと、あと大学祭で展示したゲームのソースコードを配布してあると思うよ。
とりあえずGSDKに関する情報は多ければ多いほどいいでしょ?
ソースコードはこちら
ファイル 955-1.zip
見事にソースコードしかありませんな。
画像がないので当然動作しません。もちろんGSDKも添付されてません。
あと、大学祭のときのいい加減なコードまんまだし・・・
バイナリとか、リソースとか、GSDKとかはまあそのうち許可を取ってから配布するかもね。
あと役に立つかも、GSDKのQ&A
Q.うごかねえよ。
ManagedDirectXが必要だぜ。DirectXを入れただけではだめで、.Netが入った状態でDirectXを入れるとインストールされますよ。すでにDirectXが入ってても再インストールしてみよう。
Q.LoaderLockでるよ?
Ctrl+Alt+E押して、ManagedDebugging→LoaderLockのチェックを外す。公式にも書いてあるね。
Q.シーンっているの?
必要っぽい。
Q.パッド入力はどうやってとるん?
GSDK.DInput.ButtonsStateという配列で、キーコンフィグに応じたパッドorキーボードの状態が返ってくるっぽい。
例えば、
buttons = GSDK.DInput.ButtonsState;
if (buttons[1 + Pudnum].Pressed)
で、ボタン1(デフォだと↓キーだっけ?)が押されているかを判定できる。2コンはインデックスを+16(buttons[17]が2コンの下ボタンか)
Q.エラーでないのに何も描画されないよ
D3DTexture#Drawメソッドの乗算色(引数で言うとcolor)にArgb.Whiteとかを指定。0だと、黒を乗算するから真っ黒背景に真っ黒を描画するから何もみえんな。
Q.デバッグ出力したい
Tsukikage.GameSDK.Debug#WriteLine()
using System.Linq;がusingされてると競合するから、これは外す。
Q.テクスチャを回転して描画したいが、一周が1て・・・
仕様です。がんばって三角関数の計算をするんだwwww
時計回りで、12時が0みたいですな。三角関数とかなら、反時計回りが回転方向のような気もするが。
例えば、進行方向に頭を向けるミサイルなら
Angle = (Math.Atan2(Vy, Vx) + Math.PI / 2) / (2 * Math.PI) + AutoAngleAdder;
Vyがy方向の移動速度、Vxがx方向の移動速度
AutoAngleAdderはテクスチャの向きが時計の12時が頭でない場合とかに。
まあ、重そうだよね。
まあ、自分は制作者じゃないのでくわしい仕様は(´・ω・`)知らんがな
ちなみに、このソースではタスクコントローラを使わずに、自前でObjectGroupを定義してスプライトを管理しているから、あんまり参考にはならんかも。
結構癖のあるプログラムだし。
Q.