2016年6月15日水曜日

第14回:実装、開始~!!

さて、今回から、実際に実装してみます。

進め方の目標

進め方の目標としては、こんな感じで考えています。

ステップ①オセロ盤を表示できるようになる
 目標:画像の表示の仕方を学ぶ

ステップ②石を置けるようになる
 目標:クリック時の処理の実装の仕方を学ぶ

ステップ③ゲームの一連の流れを作る
 目標:とりあえず遊べるものを作れるようになる

ステップ④スマホ・タブレット等の各種サイズに対応する
 目標:サイズ変更時の対応方法を学ぶ

ステップ⑤こだわれるだけこだわる
 目標:ゲームクリエイターとしての資質を磨く

ステップ④までできたら、アニメーションとか、特殊ルールとかは、できるようになっていると思います。

今回の目的はあくまで「作り方の学習」なので、そこまで凝らずに、
当初に想定した仕様をまあまあ満たせる程度で作ろうと思います。


実装方法

ところで、調べてみると、処理とか描画とか、ViewやControllerクラスで全部ベタ書きするやり方が多いですね。

学生時代オブジェクト指向を学んだ端くれとして、各オブジェクト(PanelとかStoneとか)に処理・描画メソッドを実装して、
Controllerクラスからそれを呼び出す・・・というやり方でやりたいと思います。

その方が、機能の追加とかをしたい場合、各オブジェクト単位で修正できるから、楽ですしね!

結構参考にしている、こちらのサイト↓も、そういうやり方を推奨しています!
http://dixq.net/Android/index.php


ステップ①!

さて、とりあえずオセロ盤を表示できるようになろうと思います。

オセロ盤を司るオブジェクトとして「Board」クラス、その中に各パネルを司る「Panel」クラスを作ります。
この「Panel」クラスで、それぞれのマス目を表示できるように作ってみました。



おお!できました!ただ、端っこの方が変になっているなあ・・・
1個だけ表示してみたら、どんな感じになるんだろう?



あれ?1個のパネルの絵は75x75 で作ったはずなんですが、それよりずっとでかい・・・
なんでだろう・・・と思って調べてみると。

汎用密度 倍率 dp px
ldpi x0.75 4dp 3px
mdpi x1 4dp 4px
hdpi x1.5 4dp 6px
xhdpi x2 4dp 8px
xxhdpi x3 4dp 12px
xxxhdpi x4 4dp 16px

http://qiita.com/nein37/items/0a92556a80c6c14503b2

な、なるほど・・・。このエミュレーターの解像度はxhdpiだから、2倍になっちゃってるんですね。
これ、結構厄介ですね。描画の時だけじゃなくて、タッチした時の座標とかでも意識しないといけないです。

この「倍率」を自動で取ってくることができれば、解決しそうですが・・・それは④で学ぼうと思ってたので、とりあえず飛ばします。



こんな感じで、無事「それっぽいもの」を表示することができました^^

無事、①までできたので、次は②に行こうと思います~!

0 件のコメント:

コメントを投稿