2013年12月7日土曜日

MMO風ゲーム内ウィンドウについてのお話

頑張ろう頑張ろうと思いつついたけどついに続行を諦めつつあるゲーム(今を生きる(仮))ですが、このままHDDの肥やしにするのも、またPCがクラッシュしてデータが飛んでしまって二度と回収できなくなるのももったいないので、個人的に頑張ったと思う点について書こうと思います。

あと、就活に使えたらいいなあとも思います。


さて、今を生きる。ですが、元々はあの最古参MMORPGであるultimaonlineをベースにして作っておりました。


これが最新版のゲーム画面になるわけですが、

どのへんをまねしていたのか、と言うと、上の画像のあたりだと思います(ほかにもあるかも)
ゲームコンテストに出しちゃったけど、ひょっとしたらこれ、パクリだからどうにもならなかったのかもしれませんね・・・
個人的にはultimaonlineとは違う点もある!と思ってるんですけども。


という紹介を済ませて、

じゃあ、一回目ですが。
タイトルにあります通り、ウィンドウシステムについてのお話をすることにします。



2012年8月9日のウィンドウを消せるようになった!!

にて確認できますが、ウィンドウを作るのが一番最初に作った難しい部分でした。


このゲームは、高専で培った技術の集大成を作ろうと思って作り出したゲームでして、
今までの俺の技術があれば出来る!とおもって、特になんかゲームの作り方とか読まなかったので、
熟練のMMORPG作成者の方とかが見たら、ちゃちい作りすぎて鼻で笑われてしまうかもしれませんが、まあ、頑張ったところ、書こうと思います。


ウィンドウですが、これは線形リストを用いて実装しました。

こんなかんじ。


基本的な機能は次の2つです。
 ・ 描画される。
 ・ ドラッグ→ドロップできる。


まず、ウィンドウの描画について。
リストの下から行うことで、上のウィンドウほど他のウィンドウに重ならないようになってます。

このゲーム画面をさっきのウィンドウフローに直すと、
こんなん。
生産ウィンドウ→装備ウィンドウ→アイテムウィンドウ
の順に描画されてます。


次に、ウィンドウのクリック処理について。
リストの上から行うことで、見た目と処理を合わせてます。
先ほどのゲーム画面中のウィンドウを大よその領域に分けると、このような四角形になるわけですが、

青い四角、緑の四角、赤い四角が重なっている部分をクリックすると、
ウィンドウリストとしては、

こうなってるので、上からクリック検知して、
アイテムウィンドウをドラッグすることになるわけです。



で、ドラッグするときにまたちょっと工夫したという訳なんですが、
ねむいので、またいつか。