2006年10月アーカイブ

現在、HSPで作成中のゲーム「The Adventure Of Holy Bird」の一部をC#に移植しようかとたくらみ中です。(最近忙しいのでできるかわかりませんが^^;)

さて、このゲームの構成は以下のようになっています。
(図の「HSP」の内側の部分)

ゲームをC#で作るのにあたり、最初は全てのデータを作り直そうかと思いましたが(マップエディタもより便利なものに作り直しました)、作っていくうちに今までに作ったものも有効に活用しようと思ってきました。

gamekousei.png

今までのゲームではマップデータはバイナリでしたが、扱いが容易でデバッグが容易であるので、新しいマップデータはテキスト形式にしました。
(内容も古いものと一部異なります)

そのため、HSP製のマップエディタを改造し、マップデータをテキスト形式に変換して出力する機能をもつ「マップコンバータ」をつくり、C#のマップエディタからも扱えるようにしました。これで既存のマップデータを有効活用できます。

さらに、マップデータが増えてくるとどれがどのステージなのかわからなくなってきます。
多数のファイルを一つ一つエディタで開いて、希望のマップを探していくのは大変です。
ファイル名と内容をメモしておくのもよいですが、できればもっと楽をしたいところです。

そこでテキストのマップファイルを画像として保存して閲覧できる「マップデータ出力ツール」
を作りました。画像としてプレビューできるので以前より少し便利になりました。

さて、上図にでている敵データは今のところ変換予定はありません。
仕様をいろいろ変更予定なのでまた作り直しです。

周辺ツールの作成が面白くて「ゲーム本体」がなかなか進みません。
完成はいつになるやら・・・(苦笑)

本格的に(?)C#にはまってきました。
最近は前回紹介したマップエディタをより汎用的に作り直しています

・マップサイズの制限の撤廃(任意のサイズのマップを作成可)
・ミニマップの表示(簡易・詳細表示の二種類)
・ミニマップをドラッグで編集範囲を変更

などを加えました。
C#はネットや本のTIPSを参考にすればHSPより楽にツールが作れることがわかりました。
(ほとんど何も知らなくても大丈夫といっていいくらいです(笑))

今日もひとり言を。

Visual C#でマップエディタを作ってみました。
なぜマップエディタかというと、C#でゲームをゆっくり作成中だからです(いつ完成できるか不明)
まだ不具合もありますが、範囲選択してマップチップをコピー・切り取りして張り付けることや
「元に戻す」「やり直し」の機能をつけてみたりしました。

作ってみて思ったことは・・・やはりクラスがあると便利です。
私はまだクラスの半分も活用できていない気がしますが、それでもデータとメソッドをまとめて管理できたりするのは使いやすいと感じました。

私は今までHSPでWindowsプログラミングをしていた関係上、どうしてもHSPと比べてしまいますが、
使えば使うほどC#のほうが便利になってきました。
HSPで苦労していたことがC#ではうそのように解決します(笑)
というわけで、WindowsプログラミングはHSPからC#のほうに乗り換えようと思います^^;

前回「C#はJavaにかなり似ている感じである」と書きましたが、細かい点では違う部分も結構あるので注意したほうがいいかもしれません(苦笑)
Javaでの記述上の問題点がC#では改善されていたりします。
(例:メソッドをオーバーライドする際は明示的にoverrideを記述しなくてはいけない など)
さらに、「プロパティ」などさらに便利な機能も増えています。


MapEditorCs.png
今回C#で作成したマップエディタ
データはCSV形式で読み書きする簡単なもの。まだまだ汎用性は低い