問題タブ [skview]
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 - iPhone 5s SpriteKit の描画の奇妙な点
iPhone 5s のピクセル解像度は 640 x 1136 で、ポイント解像度は 320 x 568 (非 Retina デバイスとの後方互換性のため) であることを理解しています。
SpriteKit を使用しているときに、問題/混乱/奇妙さが発生するようです。例:
左下隅 (0, 0) から右上隅 (幅、高さ) まで線を引いています。その結果、線は半分近く引かれました。実際、画面サイズを印刷すると、320 x 568 になるはずです。したがって、(0, 0) から (幅 * 2、高さ * 2) に描画することにしました。そしてもちろん、これは 640 x 1136 で印刷されました。
奇妙な点は次のとおりです。対角線であるべきものから角まで描いているのに、実際には角から角まで描かれていません。
ノート:
ここで何が起こっているのですか?
memory-leaks - コレクション ビュー セルの SpriteKit でのメモリ リーク
UICollectionView の UICollectionViewCell でアニメーションを行うために SpriteKit を使用しています。シーンには、SKAction を使用してアニメーション化する 1 つのスプライトがあります。各セルの contentView には、独自の SKView/SKScene があります。メモリリークが発生しています。Xcode 6.3 の Allocations Instrument でこれを見ると、新しいセルごとに、1 MB を超える割り当てのペアがあり、1 つは「SKView set_context」に起因し、もう 1 つは allocateWCMemory GLEngine に起因することがわかります。
各 UICollectionViewCell 内では、かなり標準的なものです。他の (アニメーションとは関係のない) UIView サブビューを作成し、それらを contentView に追加しています。
奇妙でおそらく関連していることの 1 つは、UICollectionViewCell の deinit メソッドが一貫して呼び出されないことです。
考え?
アップデート:
1) これはアニメーションに直接関係しているようで、コレクション ビューにはあまり関係していないようです。コードのアニメーション部分をオフにするだけでは、メモリ リークは発生していないようです。または、少なくともそれほど多くのメモリがリークしていません。この場合、SKScene/SKView は引き続き (コレクション ビュー セルごとに) 割り当てられますが、スプライトをアニメーション化しません。また、この場合、アニメーションを無効にすると、すべての割り当て解除ブレークポイントがヒットするはずの場所 (UICollectionViewCell deinit メソッドなど) にヒットすることも付け加えておく必要があります。
2) アニメーションを再度追加しましたが、1 サイクルだけ実行します。私は繰り返しアニメーションを行っていました(同じアニメーションを繰り返し、タイマーで制御します)。一度だけ実行して停止すると、メモリリークは発生しません。したがって、問題はアニメーションの繰り返しに起因しているようです。
macos - SKView で frameInterval を設定しても機能しないのはなぜですか?
フレームレートを最大 30 FPS に下げようとしています。公式ドキュメントには、次を使用するように記載されています。
利用可能なすべてのドキュメントと、ここでスタックオーバーフローまたは他のページ/ブログ/などで尋ねられた同様の質問をすべて読みました。私は非常に多くの方法でそれを試しましたが、プロパティを設定しようとしても、FPS には影響しませんでした。
SpriteKit 以外のタイミング メカニズムは使用していません。ドキュメントとStackoverflowの回答に応じて設定しています。
Xcode で提供されている基本的な SpriteKit テンプレートを起動して、フレーム レート プロパティを設定しようとしましたが、それでもうまくいきませんでした。
誰かが類似点を経験していますか? 最大 fps を減らす別の方法はありますか? FPS を下げるには他に何ができますか?
ところで: 私は OS X で作業しており、第 1 世代の Retina Macbook Pro を持っています。ハードウェアの問題でしょうか?
編集:
メソッドをオーバーライドしていません-(void)update:
-のみ-(void)didSimulatePhysics
これは、Interface Builder で設定した NSViewController サブクラスで行うことです。私のサブクラスself.spriteKitView
へのアウトレットですNSView
NSViewController
これを SKScene-Subclass に入れて、Interface Builder 内のユーザー プロパティとして SKView にアタッチしようとさえしました。
どうすればうまくいきませんか?私のゲームと Xcode テンプレートの両方で、デバッグ出力に 60 FPS と表示されます。アニメーションを減らしskView.frameInterval = 4
てもスムーズです。
ios - UIViewをSKViewにキャストすると、スレッド1シグナルSIGABRTクラッシュ
GameViewController.swift に次のコードがあります。
次のメッセージでクラッシュしlet currentView = self.view as! SKView.
ます。
タイプ 'UIView' (0x1079b7e88) の値を 'SKView' (0x106b79718) にキャストできませんでした
同様の質問が提起されましたが、彼らの解決策は絵コンテにありました。ストーリーボードはなく、コードだけです。
sprite-kit - Spritekit でビューの一時停止を解除すると、fps が大幅に低下する
SpriteKit でビューの一時停止を解除すると、fps が大幅に低下する (フレームレートが 5 ~ 10 fps に低下する) ことに気付きました。空のプロジェクト (Spritekit ゲーム テンプレート) でこれを試しました。コードは次のとおりです。
シーンを一時停止すると、すべてが期待どおりに機能し、フレームは 60 fps で安定します。これをデバイスでテストしています。
一部のフレームがスキップされるため、一時停止を解除するときにゲームプレイに問題が発生する可能性があります...何が起こっているのか考えていますか?
swift - SWIFT: 画面 (SKView) を今すぐ更新
アプリの初期化に時間がかかります。そこで、ユーザー用の画面を作成し、それをユーザーに見せて、計算を続行できるようにします。しかし、単に画面の更新を開始する方法がわかりません。プロセスが終了した場合、それは自動的に行われます。(しかし遅すぎる!) :-)
swift - SKView でビューを変更しますか?
ゲームオーバー時にキャラクターが敵と衝突するシーンへの切り替え方を知りたいです。main.storyboard の下にシーンを作成しましたが、コードを介してそれを接続する方法を知りたいです。ボタンを使用して接続する方法しか知りませんが、死ぬときにボタンを押さないので、それは私が探しているものではありませんゲームオーバーのシーンにあなたを連れて行きます。
アップデート:
それが、衝突が検出されたときの私のゲームオーバーです。はい、新しいシーンに移動しますが、main.storyboard で作成したシーンには移動しません。
swift - SKScene のコンテナーに関する奇妙な警告
コンソールに奇妙な警告があります:
2015-09-11 19:13:19.966 myApp[2171:693733] |エラー| name:'myScene' frame:{{-160, -240}, {320, 480}} からコンテナー チェーンをたどりましたが、> の順序付けられた子の 1 つであるコンテナーを見つけることができませんでした。
コンパイル中に警告はなく、アプリの実行は問題なく実行され、このメッセージは時々表示されます。
更新 1
Xcode 7 と Swift2 ではまだここにあります