2012年5月27日日曜日

ヴィータでストップウォッチを作ってみました!

今回の記事は、PSVITA(プレイステーションヴィータ)で、即急に必要になったのでストップウォッチを作ってみました。その話について書かせて頂きたいと思います。

ヴィータには、ゲーム開発のプロフェッショナルが作ってくれた「めざまし同盟」という素晴らしいタイマーがあるんですが、ストップウォッチが備わっていなかった & もともと是非とも作ってみたかった事もあり作ってみました。

ヴィータのプログラミング言語であるC#言語には、C#2.0から「OSやCPUの仕様・動作に関係なく精密なシステム経過時間を測定出来る」クラスがあります。
これはusing System.Diagnostics名前空間の、StopWatch()クラスと言いまして、テストしてみたところ、ヴィータでもちゃんと使えたんで「よし作るか!」となったわけです。
ちなみに名前がStopWatchクラスというだけで、本当にストップウオッチそのものではないです。名前が紛らわしいですね。

で、今回、せっかく、プレイステーション3並のハードウェア操作性を持つ(ウキウキ)ヴィータさんに作るんだから、ハードウェアキーでもタッチパネルでもどっちからでも操作OKにしよう!!
という設計で作ってみました。
ストップウォッチのスタートとストップを「Rキー」でも可能にし、スプリットタイムの取得は「Lキー」でも可能にしようと。

プレイステーション・ヴィータの真骨頂、日本が誇る機械加工芸術、最新世代のハードウェアキーだーーっ!!

って大げさに聞こえますけど、ヴィータの誇る、大型テレビゲーム機に匹敵する快適操作なハードキーって、まじめに歴史的な偉業なんですよ。
ヴィータの知名度の無さで埋没してる感があるけど、それとこれとは別だものーこれ。

■起動・・・なんだけど改良希望■

よしPlayStation Suite起動!!なんだけど、やっぱりそろそろ気になるのが、同時実行していたゲームを終了させようとする点。
PCエンジンアーカイブスはいつでもセーブ可能だから、まだ笑って済ませられるけれど、ゲーム内で勝手に決められたセーブポイントじゃないとセーブ出来ない仕様の他のゲームだと、もうこの時点でアウトなんだと考えると、やっぱりこのままじゃ、ちょっと痛いかな。

まぁ、今回はその話じゃないか。

■ストップウォッチ起動■
前述した通り、Rキーを押すたびにスタートとストップが切り替わります。

この機能全般ですが、私のバカな頭じゃー、ヴィータの画面(シーン)と、それの裏で怒涛の勢いで回り続けるメインループの関係をよく把握出来てなくて・・・。
正直言って、作る前に想像してたよりも倍くらいは苦労してしまいましたっ凹。(その時の関連記事はこちらです)
なんかこう、殆どサラッと行く事なんて無いなぁ・・・もっとも、その試行錯誤もヴィータの脳トレゲームとして楽しめばいいかなっ

ストップウォッチの画面更新タイミングは、言ったら当たり前ですが、ちゃんと0.01666...秒(秒間60フレーム)なので、変な引っ掛かりとかなくスムーズにスタタタターッと行きます。

ちゃんと使う時までに間に合って、基本の基本はOKという感じ。
ストップウォッチなんてヴィータじゃなくても良いだろ?って思われるでしょうが、ハイ、恒例の「だってヴィータでやりたかったから!!」という訳です。
もうヴィータの大ファンの一念だと思ってご容赦頂くしかありません。すみません。

ただ、このストップウォッチ、まだもっと改善・強化したい部分があるんですよね。
これをモチーフに、もっと知りたいヴィータの動きの研究もしたいし。
今日はもう気力がありませんが、近いうちにVer2.0を作る予定ではあります。