スキップしてメイン コンテンツに移動

HSPでブラウザゲーム「猫の日スロット222」をリリース



猫の日、222と聞いて、誰でも思い浮かぶのがスロットだと思います。

豆まき陰陽師をリリースしたあと、あまり作業がはかどらず悶々としていた私にとってはそんな安直なネタでもとても魅力的に感じたのです。
とにかく何か作りたい!リリースしたい!みたいなときってありますよね?あれです。

作ったときの手順

最初からスロット、しかも数時間で作れるもの、という枠が決まってあったので、手軽さでは最高峰と思われる HSP3Dishでやりました。
ブラウザや android や iOS に対応している開発環境の中では圧倒的に手軽だと思います。

まずはイメージを固めるためにも、ぺたぺたと InkScape で画像を作りつつ、同時に画面レイアウトも決めていきました。

わりとここに時間をかけました。
ふわっとした状態で作ってもどうせ作り直しなので、画面レイアウトをきっちり決めて、タイトル>プレイ>結果のシーンでどのように表示するかを決めました。

ゲームとして連続して遊んでもらえるように COMBO をつけることにしました。
あと、最近はやりのサーバルちゃんと手巻き寿司の作り方で有名な台無しにしちゃう男の人をモチーフに使いました。
プレイした人にふふっと1秒でも笑ってもらえたらいいなと思っています。

ぐるぐる回転の実装

なので実装は、作られた設計図のとおりに作られた画像を配置するという機械的なものでした。
今回のメインともいえるスロットの機能だけは、実装を始めてから頑張って考えました。

このスロットは、去年に作った「エレベータースロットガール」とは異なり、ドラム回転するスロットを表現する必要があります。
そのため、画像をピクセル単位でずらす必要があります。

スロットに表示する絵柄は1つでその枠にぴったりはまるようになっています。
それが少しずつ下にずれていってぐるぐると決められた絵柄のパターンが回るようにします。
今回は、それぞれの枠ごとに5枚の絵柄が並んでいてそれがぐるぐると回っている仕様にしています。

スロットを表示する枠の中には、最大で2枚の絵柄が表示されます。
絵柄を下から順にA,B,C,D,Eと並んでいるイメージです。
最初にAがでてきて、数ピクセルずつ下にずれていきます。その上にBの最後のほうが表示されます。
今回の実装では、現在表示する絵柄とその縦軸の表示オフセットを保持することで、スロットのぐるぐるを表現できました。
表示オフセットの分だけ、その次の絵柄の後半部分を表示します。



スロットをとめたときの処理

あともうひとつ悩んだのは、スロットを停止したときの表示処理です。
最初はずれたままにしておいたのですが、それだとちょうどAとBが半分ずつ枠に表示されているときに、どっちなのかすごくわかりづらかったんです。
最初は、○と×でも表示すればいいかなと思ったんですが、それよりも枠に1つの絵がバシッと表示されたほうが気持ちがよさそうでした。
そこで、面積が多く表示されているほうを表示するようにしました。

リリース準備

あとはHSPをブラウザ用に変換する作業です。
レンタルサーバにあげて試すとメモリが足りないといわれました。
デフォルトの16MBではたりず17MB必要だったみたいです。
ツールの設定はMB単位です。警告に表示されるB単位では無効扱いになるので注意しましょう。

あとHSP3Dishで注意することといえば、mes のずれと await のずれがあります。
文字列描画の mes はスタンドアローンとブラウザでは文字の幅が違うようで、最初は画面にまったく文字が表示されずあせりました。
だいたいのテキストは画像として描画しているのですが、動的に変化する数値は mes を使っています。
ずれても見えるように少し画面中央によせています。

await については「チョコゲット」のころからわかっていることなので、スタンドアローンでは少しゆるい感じで作り、ブラウザでちょうどいい感じにしました。
それでも環境によってはとろとろのスロットになっているかもしれません。
思いつきの対策としては、環境ごとに計測をして調整できるといいかもしれません。

ないものねだりですが、ブラウザ版でもデータのセーブとロードができるといいなぁと思います。もし、すでにあるというならコメントで教えてもらえるとうれしいです。

最後は少しグチっぽくなってしまいましたが、それでもたった6時間ほどでゲームが作れたのは、とても作りやすいHSPのおかげです。


謝辞

結局、2月22日の21時ごろにリリースしました。
もう3時間で22日が終わってしまう(´・ω・`)とランキングはだめかと思っていたのですが、予想以上にアクセスしてもらいうれしいです。
日別ランキングで5位になることができ、たった3時間ほどで225人ものプレイヤーのかたにアクセスしてもらえました。
ツイッターのいいねやRTのおかげです。あと宇宙に数人いるかもしれない貴重なSSRなファンのおかげです。ありがとうございます。

改めましてフリー素材を利用させていただきましたことにお礼申し上げます。

  • M+ FONTS : http://mplus-fonts.osdn.jp/about.html
  • フリー効果音素材・無料効果音 : http://taira-komori.jpn.org/freesound.html


近況

少しこんつめたせいかこのあとの数日は脳みそがハワイかどっかにいってるみたいで、ぼーっとしてました。
ハワイからもどってきてくれたら、何度も挫折しているblenderを勉強してほんの少しだけ使えるようになりたいと思っています。
webglとjavascriptについてももう少し勉強して年末に作っていたキットも完成させたいですが、まだまだ見通しがたっていません。暖かく見守ってください。
頑張ろうとは思っているんですけど、ぼーっとしちゃうんです。
頭の中はいつもプレミアムフライデーな感じなのかな。
でもそういうときはそういうときなりにすごすのがいいと思います。以上です。




コメント

このブログの人気の投稿

QTableView で表を表示してみる

タイトルは駄洒落を狙っているわけではありません。 こんばんわ SakuraCrowd です。 今回は今作っているソフトの経過報告です。 最近のブログのパターンは、 「XXX作ったよ。これがスクリーンショットね。あとこんなこと思ったよ。」 という流れですが、 今日はできていないソフトの部分的な話なので、 いつもよりもプログラムちっくな話になると思います。(´Ծ_Ծ´)メガネノトキハマジメブッテル QTableView は GUIライブラリ Qt のクラスです。 それを Python で使うための PySide というライブラリを使っています。 某表計算ソフト っぽい表の GUI です。 このデータの日付が 09/01 なのでおそらくその日に   QTableView 使うぞ!(`・ω・´) とサンプルデータを作ったのでしょう。 Qt Designer という GUI エディタを使うとポトペタでウィンドウを設計できます。 選択できる GUI の中に QTableView と QTableWidget があります。 どちらも上のような表の GUI です。 QTableWidget は 簡単 に値をいれたりできます。 Qt Designer 上で直接編集 することができるので、 サンプルの表を簡単に作ることができます。 それに対して、 QTableView は Qt Designer 上では値を編集できません。たぶん。 QTableView の強みは MVC の構造 を使えることです。 名前のとおり QTableView は View です。 これにデータを管理している Model オブジェクトを設定して使います。 Model クラスを作る手間がかかりますが、 GUI の細かな操作をしなくても Model に応じた表を表示してくれます。 Model は QAbstractTableModel を 継承 して作ります。 コンストラクタで基底クラスの処理を呼び出し、いくつかの純粋仮想関数をオーバーライドします。 def __init__ ( self , parent= None , *args):

LibreOffice Writer 文書の差分 (WinMerge x TortoiseGit) + 社畜PCの原因と対策

お久しぶりです。皆様におかれましてはお風邪などをひかれてはいませんでしょうか。 春と秋だけあればいいのにヽ(`Д´)ノとつい思ってしまう SakuraCrowd です。 今日はいつものような製作日記ではなく、ちょっとした役立つメモを書きました。 タイトルにもあるとおり、 TortoiseGit への WinMerge の導入の仕方です。 今まではソースコードくらいしか差分で確認しなかったので、 TortoiseGit 標準の Diff ツールで問題なかったのですが、 LibreOffice の Writer が最近自分の中で便利だと話題になっていて、それを差分表示するためにちょっと調べてみました。 #Writer は、文章書いて、ちょっと絵をいれたり表を作るのに便利だと思います。 #リッチテキストのエディタを探していて、これが一番よさそうな気がしたので使ってます。 それとブログを書くときはあまり長く書かないつもりだった、 Win7 PC が社畜PCになってしまった際の原因と対策も後半に書きました。割と有用な情報かもしれませんので、時間がありましたらご覧下さい。 まずは TortoiseGit で Writer の odt ファイルを管理して、差分も普通に表示させる方法です。 WinMerge(+plugin) 導入手順 すでに TortoiseGit はインストールしてある前提ではなします。 1.信頼と実績の窓の杜様から WinMerge 日本語版をダウンロードします。 WinMerge - 窓の杜ライブラリ 私の PC は 64 ビット版なのでそちらを選びました。 2.WinMerge をインストールします。 フォルダを指定し普通にインストールできます。 インストール直前の設定で TortoiseGit をチェックしておくと自動的に TortoiseGit の利用する Diff ツールの設定を置き換えてくれるようです。 これの設定は TortoiseGit の設定の Diff ツールの項目で確認できます。 3.LibreOffice Writer のファイルを読むためのプラグインをダウンロードします。 ぐぐって出てくる英語版のDLサイトは応答がなかったりしましたが、日本語版は大

QWidget の選択時のデザインを CSS で変える方法

ひさびさに書きやすいネタができたので、1ヶ月ぶりくらいに書きます。 ここ1ヶ月の作業内容 タイトルのとおりなのですが、 テーマがいきなりマニアックでとまどったり、 デスチェリー農場の続編はどうしたんだよおおおお! とか新作を楽しみにしている生命が宇宙のどこかにいるかもしれないので あらかじめ書いておくと、 ここ1ヶ月は日記ソフトを作ろうと python + pyside + sqlite の勉強をしていました。 勉強というか、ウィンドウ起動から初めて、 GUI をせっせと作ったり、ファイル保存と復元を作ったりしてます。 Copy & Paste や Redo/Undo など未実装の処理も多くあります。 今回は、タブ遷移とかクリックで選択されたウィジェットの、 背景色が変わるとか、 枠線が出るとか そんな設定を CSS で実現します。 PySide と CSS について PySide は前も Raspberry Pi 2 で使う mount コマンドの GUI ツールで使いました。 Python の GUI フレームワークです。 さすがに HSP ほど簡単にウィンドウを出すことはできませんが、 かなり楽だし、 GUI の種類や機能もかなり充実しています。 ある程度 GUI を作っていて、 こんな露骨なウィンドウだと受けが悪いんじゃないかな と思いました。 なんか今っぽいおしゃれなデザインにしたい。 そんな誘惑にかられて調べていると、 CSS でお手軽にデザインを変更 できることがわかりました。 QWidget 派生のオブジェクトを作る際に、 setStyleSheet(str_css)で css を読み込ませることで簡単に実現できます。 次の例では file.css というファイルに書いた css を QWidget 派生クラスのオブジェクトに読み込ませます。 # css の読み込み with open("file.css","r") as f:     self.setStyleSheet("".join(f.readlines())) いろいろな G