2014年8月9日土曜日

enforce(enchant game framework)でシューティングゲーム

以前、Scratchで「Return to the earth」というゲームを作ったことがある。


Scratch2.0の新機能を確認するために作ったゲームなんだが、最初に作ろうと思った面を最後まで作りきれなかった。


そこで、enchant.jsを使ったゲームフレームワーク「enforce」でこれをちゃんと作ってみようと思う。


そして、Chromeアプリストアに有料で出してウハウハしよう(なんつって)。


とりあえずひな形を作ってみた。


カーソルキーの左右でシリンダーが移動して、「z」キーで弾を発射。以上(笑)


 ChromeSafari、ハイエンドのAndroid端末のChrome、iOS8.0以上のSafariで動くと思います。


スマホなどのタッチデバイスでは自機(シリンダー)を動かして弾を撃つことは出来ませんが :-P


2014年7月18日金曜日

iPhone/Androidスマホをゲームパッドにするぞ計画

家電量販店などに行くと、スマホタブレット用のゲームをプレイするための、Bluetoothコントローラーが売っています。


こんな感じ(Google画像検索)。


f:id:digitarhythm:20140718175542p:plain


 


しかし、ゲームがやりたい時に必ずコントローラーが近くにあるか?というと、ほとんどの場合は無いと思うんですよ。


私は普段、iPadはこういう状態で持ち歩いています。


f:id:digitarhythm:20140718185702j:plain


 


当然、ゲーム用のコントローラーなど持ち歩いていません。


そして、この状態だとiPadの画面を操作するタイプのアクションゲームも出来ません。


 しかし、私達は普段コントローラーに似たサイズのデバイスを持ち歩いているではないか、ということに気付いたわけです。


そうです、こういうやつです。


f:id:digitarhythm:20140718190221j:plain


 


これならば、ちょっとゲームがやりたくなった時にパっとスマホを取り出して、iPadのゲームをやって、終わったらスマホは充電するなり、ポケットに入れるなりすればコントローラーを持ち歩く必要ありません。


 


で、ゲームのBluetoothコントーラーとして使えるアプリを作ればいいジャマイカと思いますが、そうは簡単にはいかないのです。


ゲームのコントローラーには通常、方向指示ボタンがついています。


どこの誰が考えたかわかりませんが、これが実に良く出来ていて、私達はこれに完膚無きまでに、慣れさせられています。


そこで、スマホの画面に十字の絵を描き、それをコントローラーのごとく操作させようとすると・・・・これが上手くいかないんですねぇ。


なぜなら指先にまったくボタンを押している感触が無いので、指がどんどん十字の絵から離れていってしまうんですね。


そこで次に、「最初にタッチした場所を中心として上下左右を判断する」という方法を取ったアプリが出てきました。


これはまぁ最初の、なんにも考えていないコントローラーよりいくらかはマシでした。


一旦指を離してしまえば次のタッチでリセットされるのですから。


しかし、これもゲームを続けていくとイライラさせられることになります。


なぜなら、位置をリセットするためには指を一旦離さないといけないからです。


使いやすくするために導入した「一旦指を離す」という操作が、ゲームを続けているとイライラポイントに変わってしまうんですね。


そして、指を離せない場面というのも存在します。


アクションゲームで多いと思うのですが、動き回りながら敵を倒していくタイプのゲームだと指を離している暇が無いのです。


例えばこんなゲーム*1です。


f:id:digitarhythm:20140718182229j:plain


そうすると一番最初のなにも考えてない十字の絵と同じ現象が出てしまうのです(指がどんどん十字から離れていってしまう)。


このアンチノミーを解消するにはどうすればいいのか?


いつかAppleがこれを解決するベストソリューションを提供してくれると信じて待っていたのですが、全く出てくる気配すらありません。


それどころか、WebのアップルストアBluetoothゲームコントローラーを売ってる始末です。


では、どうすればいいか?と考えてみました。


まず、「十字の位置をリセットするために指を離す」を除外します。


そもそもゲームをやっている時に指を離さなければならないなどと言うことは、思考の邪魔以外のなにものでもありませんし、上記の理由により離すことが出来ない場面が往々にして訪れます。


しかし指先で十字を認識出来ない以上、指はどんどん画面上を移動していくので、どこかで位置をリセットしなければいけません。


 


そこで、「二回目に閾値を越えた量の位置移動があったらそこを中心点にする」という方法を考えてみました。


f:id:digitarhythm:20140718191003p:plain


上記の図で説明すると、まず最初にタップした位置を中心点として指の方向を取得します。


図の左で言うと「上方向」の処理を行います。


そしてそのままタップし続けるとずーっと「上方向」の処理をし続けますが、指の動きがある閾値を越えたところで、その時の指の位置を中心として十字コントローラーをリセットします。


例えば、画面をタップし指を上へ動かすと自キャラは上へ歩いて行きますが、指を動かすとリセットされるので自キャラは止まります。


しかしそれだと、方向を変えるためには一旦止めてから再び方向を指示するという形になり、タップし直してリセットとあまり変わりません。


 


そこで、方向を指示した後の指の動かす方向によって処理を分ければいいのではないかという考えに辿り着きました。


f:id:digitarhythm:20140718195311p:plain


おおまかに図にすると上図のようになります。


最初にタップした位置から上へ指を動かすと上方向への指示になります。


そこから閾値を越えて右へ指を動かした場合はそこを中心としてリセットし、右方向への指示とします。


左の場合はリセットして左方向への指示です。


下の場合は2段階になり、下に動かすとリセットされそこを十字の中心にします。


そこからさらに下に動かした場合は下方向への指示とするという感じです。


 


と、構想は出来ているので、あとはアプリを作るだけですね(笑)


 


2014年6月11日水曜日

インディカー テキサスファイアストーン600 最終結果

佐藤琢磨がエンジンブローした際のイエローでペナルティがあったらしく、最終結果が変わったとのこと。


 



  1. エド・カーペンター

  2. ウィル・パワー

  3. ファン・パブロ・モントーヤ

  4. サイモン・パジェノー

  5. スコット・ディクソン

  6. トニー・カナーン

  7. ミカエル・アレシン

  8. エリオ・カストロネベス

  9. ライアン・ブリスコー

  10. チャーリー・キンボール

  11. ジョセフ・ニューガーデン

  12. グレアム・レイホール

  13. カルロス・ムニョス

  14. ジェームス・ヒンチクリフ

  15. ジャック・ホークスワース

  16. カルロス・ウェルタス

  17. セバスチャン・サベードラ

  18. 佐藤 琢磨

  19. ライアン・ハンターレイ

  20. セバスチャン・ブルデイ

  21. ジャスティン・ウィルソン

  22. マルコ・アンドレッティ


 


が最終結果らしい。


 


2014年6月10日火曜日

XPERIA M

ワールドモデルのXPERIA MのOSアップデートが来ていたのでウホウホいいながらアップデートしてみた。


すると、なんと、貴重な、Android4.3!!!


f:id:digitarhythm:20140610184651j:plain


 


そして、なんと、WebGLに対応したっっっ!


f:id:digitarhythm:20140610221906j:plain


 


WebGLアプリを作るためにnexus5を買ったのに、XPERIA Mで事足りるようになってしまった。


2014年6月6日金曜日

OpenSSLの「CCSメッセージ脆弱性」への対処

redhat系では「openssl-1.0.1e」へアップデートしろと言う記事はあちこちで見られるが、Ubuntu系では情報があまりない。
lepidumからの情報によると、



Ubuntuの14.04 LTS → libssl1.0.0 1.0.1f-1ubuntu2.2
Ubuntuの13.10 → libssl1.0.0の 1.0.1e-3ubuntu1.4
Ubuntuの12.04 LTS → libssl1.0.0 1.0.1-4ubuntu5.14
Ubuntuの10.04 LTS → のlibssl0.9.8 0.9.8k-7ubuntu8.18



 に更新すればいいらしい。


 


2014年5月30日金曜日

標準ブラウザ撲滅委員会

いやぁ、ほんとに日本のキャリア端末に入っている、標準とは名ばかりの端末独自ブラウザである「標準ブラウザ」を撲滅させていきたい。


存在することで不幸になる人は居ても、幸せどころか、なんらかの利点がひとつでもある人なんて存在しない。

まず、名前がおかしい。

Googleの「Default Browser」をそのまま訳しているんだろうけど、それなら一切のカスタマイズをしないで欲しい。

おかげで端末の数だけWebブラウザーが存在することになってしまった。

ユーザーエージェントもまさに泥沼。

これは日本に限った話では無いようなので、もうDefault Browserのことはみんなで忘れようじゃないか。

大丈夫、僕らにはChromeがいるじゃないか。

2010年7月24日土曜日

netatalk

なんかnetatalk2.1にアップデートしてから、途中でサーバーとの接続が停止しましたとか出てTimeMachineバックアップに失敗するようになった。

しかもこないだ突然、いままでのバックアップを破棄して新たにバックアップを作成するとか言い出した。

まぁいいけどさ・・・。

でも、途中でコケてバックアップの初期イメージが作れないので、netatalk2.1.3にアップデートしてみた。

これで安定するといいな。



QMK開発環境構築メモ

## Ubuntuコンテナイメージ取得 ```bash docker pull ubuntu:24.04 ``` --- ## コンテナ作成 ```bash docker run -it --name qmk_dev -v [マウント元ディレクトリ]:[マウント先ディレクトリ]...