問題タブ [sprite-kit]
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.
sprite-kit - テクスチャ アトラスを使用した SpriteKit SKAction animateWithTextures
SpriteKit SKAction animateWithTextures は、テクスチャ アトラスを使用して最初のラウンドで正しくレンダリングされません。
スプライトを初期化し、テクスチャ アトラスを使用していないときに問題なく動作するアクションを実行するシーンがあります。問題は、シーンが最初にロードされたときに、スプライトのフレーム サイズがテクスチャ サイズと同じになるため、スプライトが引き伸ばされて描画されることです。戻るボタンがあるので、シーンを終了して再入力すると、通常どおりロードされます。Texture Atlases の他のスプライト テクスチャには影響せず、アニメーション化されたテクスチャのみに影響し、最初にレンダリングされたときにのみ発生するのは奇妙です。
注: ViewController.m ファイルで生成されるすべてのアニメーションを格納する配列を持つシングルトンを使用しています。
** 追加した **
さて、私は多くの実験を行い、自動アトラスジェネレーターが私のファイル名を解釈する方法に何か問題があるに違いないという結論に達しました.特に。
名前の「.atlas」部分を削除してアトラスフォルダーの名前を変更しようとしましたが、画像は完全にレンダリングされています。もちろん、これはより多くのドローコールを意味するため、理想的なソリューションではありません。
画像に名前を付ける方法は次のとおりです...
テーマ-名前-番号-解像度-デバイス-PNG
たとえば、画像は「SPOOKY_tree_0@2x~iphone.png」と呼ばれます。
次に、ヘルパーメソッドを使用してキャッシュシングルトンにロードします...
そして、「name」変数を使用してキーの下のNSMutableDictionaryに保存します...
そのアニメーションを使用したい場合は、「[[PEGOGGraphicLoader sharedGraphicLoader] frameByName:kP1_DEPLOYING_PEG]];」という行を使用してシングルトン キャッシュを呼び出します。これは SKAction * を返します。
どういうわけか、アニメーションの画像を呼び戻すときに、@ 2x を画像に再適用し、それらをスプライト フレームに押しつぶそうとしていますが、よくわかりません。また、これは、アニメーションが最初から正常にレンダリングされているという事実をまだ説明していません。
-textureWithImageNamed: メソッドから解像度要素とデバイス要素を除外しようとしましたが、画像はテクスチャ アトラスによってまったく検出されず、巨大な X として表示されます。テクスチャ アトラス ジェネレーターのバグではないことが確実にわかるまで、テクスチャ アトラスを有効にせずに作業するつもりです。
当面は、ハック タイプの命名規則を使用することを検討しています。これにより、デバイス タイプなどに応じてどのテクスチャを読み込むかをプログラムで決定し、デバイス タイプごとに異なるアトラス フォルダーを作成することができます。
誰かが同様の問題を抱えていたり、私が間違っていることを教えてくれたりした場合は、知りたい. 実際のデバイスでゲームをまだテストしていないため、シミュレータの問題である可能性があります。
ios7 - 2 つの SKPhysicsBody オブジェクト間に SKPhysicsJoint を作成すると、それらの間の衝突検出が無効になりますか?
私は次のことに気付きました:
- 物理境界 (
bodyWithEdgeLoopFromRect
) と、それぞれが円形の固体物理ボディ (bodyWithCircleOfRadius
) を持つ 2 つのノードを持つシーンを作成すると、これら 2 つのノードをシーンに追加すると、予想どおり、互いに衝突したり、シーンの境界と衝突したりします。 - ただし、2 つのノード間に任意のタイプのジョイントを追加すると、ジョイントの制約がそれらの間に保持され、両方ともシーンの境界に対して衝突する可能性があります。しかし、それらはもはや互いに衝突しません。
これは私にはバグのようです。物理体間のジョイントは、基本的な衝突メカニズムに追加されると思います。誰かが同様の行動を経験したことがありますか、または私が間違っている可能性があることについてのヒントはありますか?
(ところで、これに Box2d のタグを付ける理由は、SpriteKit が Box2d を使用しているためです。これは、私が気付いていない box2d の既知の問題である可能性があります)。
xcode - Xcode 5 - アセット カタログの起動イメージが表示されない
LaunchImages に問題があります。SpriteKit テンプレートを使用して新しいプロジェクトを作成し、すぐに 2 つの起動イメージを追加すると、すべて正常に動作します。ここで、デバイスの向き ([General] -> [Deployment Info]) を [Landscape-Left] および [Landscape-Right] に変更します ([Portrait] の選択を解除します)。シミュレーターを再度実行すると、画像が表示されません ([Portrait] を許可しても、-もう一度オリエンテーション) 誰か知っていますか、これはどういうことですか?
2 番目の質問: SKSpriteNode オブジェクトでアセット カタログを使用しようとしたときに、画像も表示されません。代わりに、ノードは濃い緑色の長方形でした。同じ画像を UIImageView に割り当てようとすると、すべてうまくいきます...
objective-c - CGPoint メソッドを理解する
次のチュートリアルの数学の一部を理解するのに問題があります。
オフセットを理解する方法がわかりません。チュートリアルの約半分で、Ray は次のコードを使用します。
rwSub はどこですか
このコードが機能することは知っていますが、理解できません。タッチ ポイントとオフセット ポイントを NSLogging してみましたが、図のように三角形を形成しません。
(ソース: raywenderlich.com )
これは私の出力から得たものです:
これは正しい方向にベクトルを形成しません..しかし、それでも機能しますか? オフセットの仕組みを説明できる人はいますか?
ios - スプライト キット & 再生音がアプリの終了につながる
ARCの使用
私が遭遇した問題-SKActionクラスメソッドを使用してサウンドfxを再生するSKSceneがあります
今、バックグラウンドに行こうとすると、サウンドが終わっていても、どうやら iOS が原因でアプリを終了しているようですgpus_ReturnNotPermittedKillClient
。
この行にコメントを付けてアクションを実行していない場合にのみ、iOS はバックグラウンドで正常に実行されます (もちろん、一時停止しますが、終了することはありません)。
私は何を間違っていますか?
編集:行が実行されていない場合、iOSはアプリを終了しません-たとえば、if statement
実行されていない行(soundOn == YES)
などにあった場合、boolがfalse