プロが教えるわが家の防犯対策術!

XCodeの質問というよりはアルゴリズムの質問になるかもしれませんが、新しいCALayerの画像をCALayerの無い場所に発生させたいと思っています。

実現したい事は、「LINE:ディズニー ツムツム」のキャラクター生成のアルゴリズムを実現するにはどうすればいいのだろうと思っています。お互いに接触しないように(ぶつからないように)キャラクターを発生させ、gravityによって一斉に落下させる事を考えています。

実現するにはどうしたらいいかご存知の方は教えてください。よろしくお願いします。

A 回答 (2件)

> 新しいCALayerの画像をCALayerの無い場所に発生させたいと思っています。



No.1の方が書かれている通り、UIView中には必ずCALayerが存在します。
そして、1つのViewの中には複数のCALayerを作ることができます。
なので、その複数のCALayerを作る方法を勉強すればよいと思います。
といっても、CALayerオブジェクトを生成してaddSublayerで
既存のレイヤーに追加すればよいだけです。

http://qiita.com/edo_m18/items/8e680e7d0ac795d3a …
がCALayer追加の参考になると思います。

その複数のCALayerをどう動かせばツムツムのような動きになるのか
というアルゴリズムの質問なら、1個ずつ重力計算と接触判定しながら
動かせばよいと言うくらいしかアドバイスできませんが、
http://qiita.com/CarmineScarlet/items/df1f1d3057 …
にある雪を降らせるサンプルとかが、とっかかりの勉強になると思います。
    • good
    • 0
この回答へのお礼

親切な説明ありがとうございます。
レイヤ追加でも重力と接触判定でもなく、発生のためのアルゴリズムが知りたかった次第です。

質問の仕方が悪かったと思います。失礼しました。

お礼日時:2014/05/12 15:59

Mac OSの話なのか、iOSの話なのかわかりませんが、NSView、UIViewどちらにしても、それらのインスタンスがあるところに、CALayerがないということはありません。

かならずあります。
viewを、NSView、UIView(のサブクラス)のインスタンスとすると、

[view layer]

で、CALayerインスタンスを取得できます。

CALayerがないところというのは、Mac OSではウインドウの外、iOSではディスプレイの外を意味します。
    • good
    • 0
この回答へのお礼

おっしゃる通りです。
質問の仕方がまずかったですね。失礼しました。

ご返答ありがとうございます。

お礼日時:2014/05/12 16:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!