« 音を出したりループさせたり | メイン | XNA で日本語……というか多言語表示するのに一番いい方法ってなんだろ »

Ziz Puzzle on XNA

このエントリはXNA Game Studio Express beta の初期版で確認した動作について記載されているため古いです。
最新の XNA 環境で動作する Ziz Puzzle については XNA タグから情報を検索してください。

zizxna.png ここ数日 XNA 関連のエントリが続きましたが、とりあえず実際になにか組んでみないと雰囲気わからないよね、という感じで Ziz Puzzle を移植してみました。
2P モード、 3 分モードはなく、Nomal とNightmare モードのみです。有線の XBOX 360 コントローラーをつないでいればそちらでもプレイできます。

file

作成ゲームについて

XNA Game Studio Express (Beta) で作成しています。
ゲームと Sourcefile の Licenseは Creative commons の 帰属 2.1 日本です。
あとやたらファイルサイズがありますがほとんど音ファイルだったりします。

実のところ XNA Game Studio Express が導入されていない環境での配布用ファイルの動作が未検証ですので、これについてはもうちょっと調べてみる予定です。動かなかったらごめんなさい。

一応、資料的には、配布用ファイルを実行するには、.NET Framework Version 2.0 再頒布可能パッケージDirectX のランタイムがシステムに導入されている必要があるとのことです。ファイルは WindowsUpdate より入手できると思います。
また、XNAシューティングを配布されているソーサリーフォースさんのリリースを見ると、ビデオカード、またはグラフィックチップセットがシェーダモデルバージョン 1.1 が使用できることが必須とのことです。

気づいたこと memo

  • 流れてる music を止めようと cue の stop を試みたけど止まらなかった。こんな感じ。
    
    soundBank.GetCue(fadeOutFile).Stop(AudioStopOptions.AsAuthored);
    
    
    カテゴリで指定したら止まったので謎です。
    
    audioEngine.GetCategory("Music").Stop(AudioStopOptions.AsAuthored);
    
    
    XACT 関連はまだかなり謎だったりします。いろいろできそうなんだけどなー。
  • GetState() で mouse の clickを検出していたのだけれど、Double click のような「その場から動かない素早いclick」をすると、二回目の検出がうまくできなかった。これは xnaspot のサンプルでも同様の現象が確認できました。
    
    MouseState mouseState = Mouse.GetState();
    if (mouseState.LeftButton == ButtonState.Pressed)
    
    
    今回の ziz の場合、click 検出ができないとゲームとして厳しいことになっちゃうので、今回は GetState を止めて System.Windows.Forms.Control.MouseButtons を使っちゃいました。が、これは正攻法ではないと思いますので、回避策がわかった時点で差し替えた方がよさげです。
  • XACT を使って ループで音楽を流しながら toggle full screen を実行したら音楽が途切れました。ここらへんのデバイス復帰関連はほど良い資料が見つからなかったので、とりあえず今は情報待ちな気分です。ziz では起動時のコマンドラインオプションで逃げています……。

ソースすげーきたないよ

なにぶん delphi で思いつくがまま MainForm (だけ!) に書き連ねていったコードをほとんどそのまま移植したため、とりあえず動くようにはなっているもののマジックワードありまくりでとんでもなく汚いコードです。我ながらこれはかなりひどい。こりゃ資料にもなんないよなあ。
なんというか「とりあえず動く」状態なので、目下のところ僕の主な目的は、これをいかに今風に書き直すかです。
ごめんね。

よい時代だ

しかしまあこんな風に、なんにも考えないでコード書いてもそれなりに動くゲームがつくれるというのは実によい時代ですね。
ライブラリ的に似たようなことができる環境はいろいろあると思うのですが、やっぱ言語提供元が提供してくれる安心感は大きいです。

関連エントリ / tag : xna , xbox360 , zizp

トラックバック

このエントリーのトラックバックURL:
http://blog.tmemo.jp/mt-tb.cgi/244

コメントを投稿

About

2006年09月10日 23:21に投稿されたエントリのページです。

ひとつ前の投稿は「音を出したりループさせたり」です。

次の投稿は「XNA で日本語……というか多言語表示するのに一番いい方法ってなんだろ」です。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Powered by
Movable Type