2016-08-06 5 views
2

ApplesクラスのリファレンスであるSKShapeNodeだけでなく、多くの開発者からは、ビューで頻繁に描画したいカスタムシェイプを描画するためにSKShapeNodeを使用すると、パフォーマンスが悪くなるため、悪い考えです。SpriteKit:SKShapeNodeなしでカスタムシェイプを描画する方法は?

真の、いくつかのカスタムシェイプを持つシンプルなアプリケーションは、CPUを最大80%までスパイクし、80MBのRAM(デバイスの方が少し良い)を使用しています。

それで、SKShapeNodeを使わずに矢印のような図形を描くにはどうすればいいですか?私は表示サイズを気にする必要がないので、bezierpathsで描くのが好きです。

矢印を伸ばしてタッチを動かすと画像が伸びるので、質の悪いことなくテクスチャで矢印を描く方法。 SKShapeNodeでこれを行うと完璧に動作しますが、パフォーマンスは悪くなります。

+0

"デバイス上でよりうまくいく"ように配置します。シミュレータを考慮しないでください。ユーザーはsimでアプリを実行しません:)また、シェイプを尖ったものとしてテクスチャに変換することもできますが、ゲームプレイを開始する前にそれを行う必要があります。そうでなければ、テクスチャへの変換が高価なので、遅れを経験するかもしれません.... – Whirlwind

答えて

3

SKShapeNodeノードをいつでもシェイプの作成に使用でき、pathプロパティを使用してシェイプをデザインできます。次に、シーンビューのSKShapeNodeからテクスチャを作成し、新しいテクスチャをSKSpriteNode

+1

ええ、私はすでにそれをしています。しかし、私はこれが本当に助けにならないと感じています。私のCPUはまだ60-80%で高いです。私はSKShapeNodesから構築した13のタイルのような単純なタイルレイヤを表示しました。ドローカウントには13のドローしか表示されません。その画面では13個のタイルしか表示されませんが、CPUの使用率は65%、RAMの使用率は約70MBです。私は間違ったことをしていますか?シェイプからスプライトに変換するのはとても簡単なので、変換に何か悪いことはしないでください。 – NovumCoder

+0

あなたが持っているものがすべてスプライトで、65%のCPU使用率を持っているなら、コード – Knight0fDragon

+0

を評価する必要があります。@ KnightOfDragon - これは素晴らしいテクニックであり、私のアプリではうまく実装されました。しかし、SKShapeNodeの円弧から約60の円のテクスチャを作成する必要があります。私は十分なRAMを持っていないいくつかのデバイスでメモリエラーがあります。あなたはこれを効率的に行う方法を知っていますか? – Nicholas714

関連する問題