初心者のSWIFTアプリ開発記 ©たぬきち

肥満気味になってきたので筋トレに励んでいます! プログラミング頑張ります

【swiftアプリ開発】plistを使ってnodeのposition管理

機種によるサイズ差を上手いこと調整できない

画面に配置するnodeの数や位置などを、ステージごとに個別に管理するのはクソめんどくさい!
すべてのnodeにあらかじめifやswitchを使ってコードで仕分けしておくか、plistを使うか、今の知識ではそのどちらしかない(`・ω・´)

もちろんめんどくさいのは嫌だからplistを使う!

plistを使うんだけど、plistについてよくわかっていないのもあるし、そもそもplistを使って管理するのが適当なのかそうではないのかすらわからないのだけれど、plistを使うと

f:id:egoisticYK:20160111175522p:plain

こんな感じで単純に100とか200でpositionを指定する方法しか知らない。なのでちっさい愛フォンを基準にしたらスカスカだし、大きな愛フォンを基準にしたら画面からはみでる。

解決策その1

画面中央を基準にする

画面中央を基準に設定(anchorpoint(0.5,0.5))すればなんとなくいける気がしたんだけど、結局は小さなアイフォンのサイズが基準になってそれ以上はどうしようもない・・・

・・・全然解決案じゃない(´・ω・`)

解決策その2

ゲーム画面自体をすべての機種で統一する

アイフォン4sは画面全体を使って、それ以上に大きな機種はgameviewをアイフォン4sのサイズにする! それなら機種が違っても同じ感じで扱える( ^ω^ )

・・・でも自分が使っている6プラスとかで試すと余白がでかすぎて却下!

解決策その3

画面を分割し、plistでは2番目とか三番目とか指定する

なかなか思いつかなかったんですが😢、とりあえず縦横10分割してplistでは番号を割り当てるような感じにしてみたら、それなりに思い通りにできました。

 func positionMake(xNum: CGFloat, yNum: CGFloat) -> CGPoint{
       
        let posix = size.width/10 * xNum
        let posiy = size.height/10 * yNum
        let position = CGPoint(x: posix, y: posiy)
        return position
    }

ネットで調べてもいい方法がわからないから、しばらくこれでいいやf:id:egoisticYK:20160107140439p:plain