問題タブ [skshapenode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - SKShapeNode のサイズ変更
SKShapeNode のサイズを変更するにはどうすればよいですか?
私がこれまでに試したこと:
フレームのサイズ変更
box.frame.width = 10
エラーを与えるCannot assign to the result of this expression
SKアクション
何も起こりません
xScale
box.xScale = 0.1
サイズを変更する代わりにノードをスケーリングします
sprite-kit - SpriteKit で線を描画するときに FPS の低下を回避するにはどうすればよいですか?
私の現在のプロジェクトには、スプライトがゲーム シーンで経験する力に応じて移動する重力シミュレーターが含まれています。
私の機能の 1 つは、移動するスプライトの背後に線を描画できるようにすることで、スプライトがたどるパスを確認できるようにすることです。
ここに示されています:
ただし、スプライトが画面上で動き続けると、FPS が急降下し始めます。これは、スプライトが最初に動き始めてから時間が経過したこの 2 番目の画像で確認できます。
調査したところ、他の人が同様の問題を投稿していることがわかりました。
ただし、上記の質問では、答えのポスターは、それ (答え) がstatic imageを対象としていると詳述していましたが、これは私が望むものではありません。この行は、スプライトパスに影響を与えるものに応じてリアルタイムで変化するためです。動作しなかった古い行に新しい行を追加する機能を実装しようとしたときに反映されました。そのコードはこちら
すべての描画操作に起因するこの絶え間ない FPS の低下を適切に停止する方法を見つけるのを手伝ってくれる人がいるかどうかを尋ねています. 現在の描画コードは 2 つの関数で構成されています。
updateDrawPath: スプライトの最新の位置に線を描画します。
traceObject: SKPlanetNode (SKSpriteNode のサブクラス) を受け取り、その後に線が描画されるように設定します。
誰かがこれを行う方法を提案し、私が蓄積し続けるひどいオーバーヘッドを減らすことができれば、それは素晴らしいことです.
ios - ジョイントを使用した SKShapeNode の拡張
互いに接続したい 2 つの SKShapeNode ノードがあります。タップしてアクションを実行すると、2 つのノードの高さが拡張され、もう一度タップすると収縮します。問題は、2 つのノードが期待どおりにアニメーション化されないことです。
アニメ化前:(未展開)
アニメーション後: (拡大)
両方のノードが拡大していますが、一方が他方の下にあるように見えます。私が望んでいるのは、彼らがお互いを「押しのける」ことです。
ios - SKShapeNode のドラッグがスムーズではない
したがって、私はSwiftおよびiOS開発には非常に慣れていませんが、プログラミングにまったく新しいわけではなく、いくつかのチュートリアルを行ったばかりですが、基本的に私のコードは次のようになります:
}
これをビルドすると、ドラッグすると円が認識されて移動しますが、約 30 ピクセルしかないため、もう一度タッチして移動する必要があります。ここで何が間違っていますか?
sprite-kit - SKShapeNode でのタッチの検出がスプライトと同じように機能しない
私は SKShapeNode を持っていて、それに名前を設定しましたが、タッチで検出しようとすると、他のスプライトで使用する方法では機能しません。
敵は SKSpriteNode であり、正しく検出されますが、SKShapeNode である形状は検出されません。そして、文字列名を正しく入力しました。
ios - SKShapeNode は SKAction を中心からスケーリングするように設定します
SKShapeNode のサブクラスである Tile クラスがあります
そして、次のようにクラスをインスタンス化します。
私の実装ファイルには
}
問題は、そのノードをアニメーション化/スケーリングしたいが、ノードの中心からスケーリングするのではなく、ノードの座標 (0,0) からスケーリングすることです。+ (instancetype)shapeNodeWithPath:(CGPathRef)path
centered:(BOOL)centered
メソッドを使用し、中心をYESに設定する必要があることを他の場所で読みました
ただし、上記のインスタンス化の方法では、shapeNodeWithPath メソッドを使用して SKSHapeNode を初期化する方法がわかりません。または、Tile.center = YES; を設定できる他の方法がありますか?