とりあえずブログ

プログラミングとiPhoneアプリの作り方を勉強中です。

試行錯誤 10 (ジグソーパズル)

このブログを始めた時に
「1日1記事書こう」d(・∀・*)
と決めていたのですが、1日空いてしまいました。
と言っても、ここしばらく日付をまたぐことが多かったのですけど。。

ブログ用に、過去にObjective-Cで書いたコードをSwiftで書き直しているのですが、とてもいい勉強になります。
が、今回は配列内の要素を弄るところでつっかえてしまって、どうにも先に進めず...orz
止むを得ずちょっとだけ、書けるところまで書いてみますm(__)m

ジグソーパズルは、以前から作ってみたいものの一つでした。
「春の縁側」では、3段階のピースの数に挑戦できるようにしてみました。
ここでは4×4の16ピースのものを作ってみたいと思います。

原型となる絵です。(Illustratorで描いています。)

f:id:onetoonewao:20151119195938p:plain

これを、Illustratorで周囲に凹凸をつけた状態で分割しておきます。
遊ぶ時にわかりやすように、周囲に縁取りの線をつけています。

f:id:onetoonewao:20151119200851p:plain

画面上でピースを組み立てる台も用意します。
f:id:onetoonewao:20151119202839p:plain


「ピースをあるべき位置(正解の位置)に持ってきた時」という判定を、どのようにしようかとしばらく悩んだ覚えがあります。
ジグソーのピースは周囲に凹凸があったりなかったりするので、ピースの形に関係なく判定ができるようにしました。

分割したピースの、一番左上のものです。
正方形のimageView(分かりやすいように黄色にしています)にします。
f:id:onetoonewao:20151120002232p:plain

周囲の凹凸を除いた正方形(赤い線)の中心(赤点)は、imageView(黄色)の中心でもあります。
そこが台の各場所の中心(黒点)と一致すれば正解となります。
f:id:onetoonewao:20151119204238p:plain
f:id:onetoonewao:20151119203457p:plain


他にもっと良い方法がありそうにも思うのですが...

次回、続きを書いていきたいと思いますm(__)m