問題タブ [sktexture]
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.
swift - imageFromFileで作成されたSKTextureを色付けする方法は?
六角形や星など、いくつかの形状のpng画像を作成しましたが、それらはすべて白色です。
これらの SKSpriteNodes または SKTextures に色を付けて、必要な色ごとに形状イメージを作成し、それらのテクスチャをメモリに読み込むのではなく、任意の色を割り当てることができるようにしたいと考えています。画像を高解像度にする必要があるため、XCode からメモリ警告が表示されるため、複数の画像をメモリにロードするのは適切なオプションではありません。必要に応じてメモリにロードしても、ゲームが約 0.25 秒遅れるため、機能しません。
では、1 つの SKTexture を作成し、色を変更する必要があるときはいつでも SKSpriteNode の画像テクスチャを色付けする方法はありますか?
ios - SpriteKitの「不均一にスケーリングされたテクスチャ」の意味は何ですか?
クラスリファレンスSKCropNode
では、マスクを指定するいくつかの例が示されています。
どうぞ:
これは、切り抜きノードがアートワークから派生した単純なマスクを使用できることを意味しますが、より高度なマスクも使用できます。たとえば、マスクを指定するいくつかの方法を次に示します。
コンテンツをシーンの長方形の部分に制限するテクスチャなしのスプライト。
テクスチャ スプライトは、正確なピクセル単位のマスクです。しかし、不均一にスケーリングされたテクスチャの利点も考慮してください。不均一にスケーリングされたテクスチャを使用して、サイズ変更可能なユーザー インターフェイス要素 (ヘルス バーなど) のマスクを作成し、マスクされた領域を動的コンテンツで埋めることができます。
ノードのコレクションは、フレームがレンダリングされるたびに変化する複雑なマスクを動的に生成できます。
2 番目の例では、不均一にスケーリングされたテクスチャを紹介しています。これはどういう意味ですか?
これは、この 2 番目の例を理解するのに役立ちません!
sprite-kit - SKScenes を適切にプリロードするにはどうすればよいですか?
ここで説明したのとまったく同じ問題がありますが、提案された解決策は機能しません。つまり、シーン間を遷移するとき、プレゼンティーの読み込みに時間がかかりすぎるため、その間の遷移は完全にスキップされます。現在、シーンのすべてのコンテンツを適切にプリロードする方法を探しています。私がすることは:
- アプリケーションの起動時にシーンを割り当て/初期化する
- その後、シーンを構成するすべてのテクスチャをプリロードします
- 数秒後、シーンを提示します。
トランジションが初めてトリガーされたときは常にスキップされ、その後の試行はすべて期待どおりに機能します。
以下は、(起動時に) シーンを割り当て/初期化してプリロードする方法の例です。
それによりpreload
、SKScene のカテゴリです。
ロードが非同期で実行され、preload
すぐに返されることを認識しているため (これは意図されています)、ロードが完了する前に遷移を引き起こす可能性がありますが、どれだけ待っても関係なく、常に遅れます。
ヒント/ヘルプは大歓迎です!
objective-c - SKSpriteNode 画像の色を変更しますか?
プログラムで SKSpriteNode の色を変更する方法があるかどうか疑問に思っていましたか?? 黒のアウトラインと白の塗りつぶし色を持つボックスである SKSpriteNode のテクスチャがあるとします。プログラムで白い塗りつぶしの色を別の色に変更するにはどうすればよいですか?? (おそらく、テクスチャで白いピクセルを検索し、ピクセルを別の色に置き換えるカスタムメソッドを考えていました)これが可能かどうかさえわかりません。
ios - スプライト キット: imageNamed: または texture:?
現在、単純な 2D スプライト キット ゲームに取り組んでいます。背景の「画像」オブジェクトを作成したときに、SKSpriteNode の便利な imageNamed: 初期化子を使用して初期化しました。ただし、spriteKit のドキュメントをいくつか調べたところ、texture: 初期化子の代わりにテクスチャを使用して、背景スプライトの「イメージ」を設定することもできることがわかりました。
どちらが自分のシナリオに最適なのか、一般的に、どちらをどこで使用するのか疑問に思っていました。
これが私が現在使用しているコードです-backgroundImage = SKSpriteNode(imageNamed: "BackgroundImage")
テクスチャの代わりに使用できるコードは次のとおりです。
var backgroundTexture = SKTexture(imageNamed:"BackgroundImage")
backgroundImage = SKSpriteNode(texture: backgroundTexture)
ios - 生成された SKTexture をファイルに保存する
以下の問題についてバグを報告しました。良い回避策を持っている人はいますか?
ファイルに保存しSKTexture
て再度ロードしようとしましたが、成功しません。次のコード スニペットは、Xcode スタートアップ プロジェクトのGameScene.mにコピーできます。
で使用textureFromNode
していますがgenerateTexture
、それが問題の根本原因のようです。スプライトのテクスチャを使用すると、コードが機能し、2 つの宇宙船が表示されます。
このコードは iOS 8 では機能しましたが、Xcode7 と iOS 9 では機能しなくなりました。バグ レポートを提出する前に、これがバグであることを確認したいだけです。私の心配は、私が何か悪いことをしたことですNSKeyedArchiver
。
シミュレーターとデバイスの両方で発生します。
Yudongの更新:
これはより適切な例かもしれませんが、シーンが 4 つのレイヤーで構成され、多くのスプライトがあると想像してください。ゲームプレイが終わったら、試合終了シーンのサムネイル画像を保存したいです。画像はボタンのテクスチャとして使用されます。そのボタンを押すと、試合のリプレイ ムービーが開始されます。古いゲームの画像のボタンがたくさんあるので、各画像をファイルに保存する必要があります。
解決策/回避策:
ラッセルズ コードに触発されて、次のことを行いました。できます!