2015年10月25日日曜日

ゲームアプリ第二弾、作成したビットマップで表示するようにしました


ゲームアプリ第二弾、少し進みました。

drawRectとdrawTextで仮表示だったものを、先日作成したビットマップに差し替えました。



このゲームをやってみました(Air Hockey Deluxe)


Air Hockey Deluxeをやってみました。

アプリ自体は、マルチタッチを生かして対戦もできるし、思い通りに操作できるように慣れると熱中してしまうと思います。

ただし、操作性について考えさせられるところはありました。


以前、タッチパネルを使うと、どんなゲームが直感的に遊べるか?を考えていたとき、真っ先に「エアホッケー」が思い浮かびました。

しかし今回、実際にNexus7(2012)でやってみると、指とタッチパネルの摩擦が大きくて直感的な操作は難しかったです。
滑らかな感覚の液晶保護シートでも貼っていれば、印象は違うかもしれません。

タッチパネル操作用のペンを使うと摩擦の問題は解消されましたが、少々「直接」な感じは薄れます。あとペンより手前が死角になるますが、これは指でも同じか。


X68000に「シャッフルパック・カフェ」というエアホッケー風のゲームがあり、これはマウスで遊ぶものでした。

純正マウスがいまひとつだったのと、有線だったのでやりにくかった記憶があります。
今だったら、マウスにボールはなく、ワイヤレスだったりするので、直感的に遊べそうです。


頭に思い描くことと、実際にやってみることとの間には違いがあるので、プロトタイピングでそういったことを確認することの必要性を感じました。

2015年10月24日土曜日

この一週間の進捗=ナシ


ゲームアプリ第二弾、この一週間は実作業は何も進んでいません。

一応、頭の中では「こうやったら面白くなるかな」とか、画面のレイアウトとか、考えてはいますが、手を動かしてなかったです。

これ、家庭菜園だと、例えばジャガイモの種イモとか、サツマイモの苗とかを植えたとすると、一週間何もしなくても、なんらかの変化があるものですが、
ゲームアプリ開発とか、動画編集とかは、手を動かさなければ、動かさない分、何も変化しないというのが、
同じ「趣味」というカテゴリなのに大きく異なるということが、当たり前なことだけど、おもしろいなと思います。

だからといって、「農業のほうが楽チン」などとはまったく思いませんけど。

なんで進んでいないか原因を思い返してみると、
  1. 「研究」とか「勉強」とかいう名目(自分への言いわけ)で、他のゲームアプリで遊んでいる
  2. 第三弾、第四弾...の小ネタを思いついてしまい、ついついその小ネタを育てようとしてしまう
  3. 平日は本業で疲れている
といったあたりでしょうか。

計画とか立てると「仕事」っぽくなるので、「趣味」としてボチボチやります。

インターフェース誌年間購読継続案内届く


最近Androidアプリ開発にうつつを抜かしていて、ほとんど読めてません。

届くたびに「おまえの本業はこっちだろっ」っていう気分にはなります。(「こっち」=組込み)

2012年ごろから、ぱっと見、堅くなくなっているようにも見え、最近はラズパイの特集が増えて、おもしろそうに思えてきてはいます。

ところで、ラズパイは「トラ技」「I/O」「日経Linux」「日経ソフトウェア」と、自分が読む雑誌(「たまに読む」も含む)いずれにも出てくるので驚いています。

初代はCPUが少し前の世代だったので、PCDuinoとかのほうに関心がありましたが、ラズパイ2はそのあたりがクリアされていて、そそられます。

が、今はいろいろつまみ食いせずに、もう少しAndroidアプリ開発にうつつを抜かそうかと思ってます。

2015年10月17日土曜日

ゲームアプリ第二弾、ゲームの仮の基本部分を動かしてみました


ゲームの骨格となる部分をうごかしてみました。

作成中の画像データはまだ反映させず、同じサイズをdrawRectとdrawTextで描画しています。



今のところ、ゲームオーバー(右から現れたパネルが左端に到達するとゲームオーバー)がある以外は、スコアも終了条件も入っていないのでだらだらな感じ。

一定数のパネルを、1ラウンドの区切りにして、その間にどれだけ高得点を得られるか、というのがいいかな?

あるいは、1ラウンドで区切らず、得点につれてパネルの出現時間間隔を短くする(=難易度を上げていく)という手もあるけれど、なんかアーケードゲームのようになってしまう?

などといったことを考え中。


Gradle Syncって?


Android Studioをupdateして、projectを開いてみたら次のようなエラーが出るようになってしまった。

 Error:(24, 13) Failed to resolve: com.android.support:appcompat-v7:23.0.1

Messages Gradle SyncのInstall Repository and sync projectをクリックしたら、必要なファイルがインストールされて、エラーは出なくなった。


しかし、A Newer version of ....だそうなので、dependenciesを書き換えてGradle Syncというのを再度行った。

このあたりはよくわかっていない。まだまだ勉強不足。

2015年10月12日月曜日

ゲームアプリ第二弾、Projectを作成


Android Studioを1.2から1.4にアップデートして、ゲームアプリ第二弾のProjectを作成しました。

自動生成されるMainActivityクラスは、ActivityではなくAppCompatActivityというクラスを継承していますが、今回もステータスバーもタイトルバーも表示しないので、Activityクラスを継承することにしました。


2015年10月11日日曜日

ゲームアプリ第二弾ドット絵作成中


Edgeというフリーソフトを使ってドット絵を作成しています。

ひとまず、メイン画面で使う部品が作成できました。

ゲームアプリ第二弾は「九九」を題材としたものですが、「9×9=81」ですが、36通りの数字しか出てこないんですねぇ。

このゲームをやってみました(Dots)


Android版「Dots」にハマっていました。

ルールが単純でわかりやすく(同じ色のDotsをできるだけ多くつなぐ)、画面もすっきりしています。
Dotsが落ちてくるときに、少しバウンドするような細かい効果も、ハマるポイントかもしれません。

タイムアタック(時間制限)のほかに、つなぐ回数制限モード(ムーブモード)もあり、どちらかというとムーブモードにハマりました。

ただし、スコア計算上は、一回に多くつなぐことにより、多くの得点が得られるわけではなく、一回目4ドット、二回目4ドットのケースと、一回目2ドット、二回目6ドットのケースは同じ得点しか得られないので、「次に多くつなぐため、ここは控えめに」といったことにあまり意味がないようです。

特にタイムアタックでは「多くつながればラッキー」ぐらいにしておいて、こまめにすばやくつないでいくほうが、結果は高得点になるように思います(あるレベルを超えるとそうではないのかもしれませんが、その域には達していません)。

配牌に左右されるので、スコアが線形に伸びていく感じがあまりないですが、逆に、「次はハイスコアになるかも」と、ついつい「もう一度」をタップしてしまいます。


2015年10月9日金曜日

「ArrayList」の配列


Java勉強中。

ArrayListの配列を以下のように作ろうとしたら、

  ArrayList<String>[] a = new ArrayList<String>[50];

次のようなエラーが出てしまった。

  エラー: 汎用配列を作成します


ひとまず、以下のようなダミーのクラスをはさむと、エラーは出なかった。

  class Dummy extends ArrayList<String> {
  }
  Dummy[] a = new Dummy[50];


可変長配列の固定長配列の正しい作り方とは?

2015年10月4日日曜日

ゲームアプリ第二弾、画面部品を検討中


ゲームアプリ第二弾の画面部品を検討中です。

MSXの頃は、スプライトのサイズが8×8ドットか16×16ドットで単色だったので、絵心がなくてもなんとかなってました。

画面サイズ800×600ぐらいになってくると、さすがに16×16ドットの部品では小さすぎるので、64×64にしようとしています。

今回の部品は「四角に数字」という単純なものなのですが、フォントの扱いが難しい。

8×8ぐらいだったら、自作もできますが、これを拡大するというのは、かなり厳しいです。

そこで、「凄いフリーフォント1500」という本で、アプリで利用しても問題なさそうなのを選んでみましたが、けっこう時間がかかってしまいました。

第一弾の「ツモルス」では、アタリフォントを参考に、少々縦長のフォントを作ってみましたが、アタリフォントの著作権とかどうなっているのでしょう?ググってみましたが、あまり明確な答えをみつけられませんでした。



このゲームをやってみました (四川省パズル)

Android版「四川省パズルにハマってしまいました。

最初は、配牌が大きく影響するのにタイムアタックの要素があるのはいかがなものか、などと思っていましたが、
ついついSTARTしてしまっています。

タイムアタックの要素は強力で、最初のほうのレベルは、おそらくパズル的要素はあまりないので、タイムアタックがなければ、何回もやってみようとは思わなかったかもしれません。

操作性としては、ペアの判定中も次の牌の選択ができれば良いかな、と思いましたが、、
かなり前に、ハマってしまったことがあるパソコン版と比べると、タッチパネルのほうが直感的ですね。

今のところ、Level1の自己ベストは33秒です。

2015年10月3日土曜日

ゲームアプリ第二弾考え中


ゲームアプリ第二弾は「九九」を題材にしようと考えています。

第一弾の「ツモルス」は、JavaScript + HTMLでプロトタイプを作ってみたけど、JAVAに持ってくる作業はムダなので、今回はJAVAでSwingを使ってみました。

でも、結局Androidの開発環境に持ってくる作業が必要ですが。

アプリ開発日誌はじめました。


アプリ開発時の記録をとっておいてほうがいいかなと思って、ブログを始めました。

「日誌」というよりは「週報」のようになるかもしれませんし、「いつの話やねん」というくらいリアルタイム性がないかもしれないですが、とにかく続けていきたいと思っています。