進め方の目標
進め方の目標としては、こんな感じで考えています。
ステップ①オセロ盤を表示できるようになる
目標:画像の表示の仕方を学ぶ
ステップ②石を置けるようになる
目標:クリック時の処理の実装の仕方を学ぶ
ステップ③ゲームの一連の流れを作る
目標:とりあえず遊べるものを作れるようになる
ステップ④スマホ・タブレット等の各種サイズに対応する
目標:サイズ変更時の対応方法を学ぶ
ステップ⑤こだわれるだけこだわる
目標:ゲームクリエイターとしての資質を磨く
ステップ④までできたら、アニメーションとか、特殊ルールとかは、できるようになっていると思います。
今回の目的はあくまで「作り方の学習」なので、そこまで凝らずに、
当初に想定した仕様をまあまあ満たせる程度で作ろうと思います。
実装方法
ところで、調べてみると、処理とか描画とか、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 件のコメント:
コメントを投稿