問題タブ [uikit-dynamics]
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 - Strange SpriteKit + UIDynamics Bug
So I'm developing a game using SpriteKit. And to make the game more interesting I decided to use UIDynamicAnimator to add some physics to the UIKit elements within my game. Everything works great except there is one major problem. The moment I alloc/init a UIDynamicAnimator like so:
The physics bodies in my game get completely offset. Even if I don't specify a reference view the physics still get offset.
What's strange is that i'm creating the UIDynamicAnimator in a completely separate ViewController so it's not like it's sharing the same reference view or something like that.
Update: Even the act of simply creating a UIDynamicItemBehavior like so:
messes up my scene's physics.
I'm assuming this is an internal bug with the physics engine that SpriteKit and UIDynamics share.
Anyone have any suggestions?
ios - UICollisionBehavior の問題
UICollisionBehavior
いくつかのバグを見つけただけなのか、それとも正しく実装していないだけなのかはわかりません。
私は2つの主な問題を抱えています。
1) 定期的にUICollisionBehavior
、プレーヤーと、画面の上から落ちるか下から押し上げられる新しいアイテムの 2 つのアイテムだけで s を作成します。
ただし、2 つのアイテム (プレイヤーではない) が衝突することがあります。しかし、アニメーターで衝突をログに記録すると、それらにはすべて、プレーヤーと落下/上昇アイテムの 2 つのアイテムしかありません。
クラスリファレンスによるとUICollisionBehavior
、衝突:
動的アニメーターに複数の衝突動作を追加できます。動的アイテムは、同じアニメーターに属している場合、任意の数の衝突動作の一部にすることができます。たとえば、一連の青色のアイテムと別のピンク色のアイテムの衝突動作を指定できます。動的アニメーターに両方のビヘイビアーを追加すると、青色のアイテムが互いに衝突し、ピンクのアイテムが互いに衝突する可能性がありますが、青色のアイテムとピンクのアイテムは衝突せず、互いに無視されます。
上記の例を使用すると、ピンク色のアイテムと青色のアイテムが衝突しますが、それらの衝突動作は同じではありません。
2) 画面をタップするとプレイヤーが押されUIPushBehavior
ますが、時々プレイヤーとアイテム (落下/上昇) の間の衝突が捕捉されません。
上記の問題が関連しているかどうかわからないので、今のところ同じ質問に入れました。
誰でもそれが何であるか考えていますか? 誰かがこれをバグとして見つけましたか?
いつもありがとうございます。
ios - UIOffsetMake() は従来の左上隅の原点 (0,0) または左下の原点を使用しますか?
UIKit のビュー ジオメトリは、左上隅 (0,0) から始まり、右下に向かって移動するにつれて x と y が増加する軸に作用することを指定します。
UIOffsetMake()
は UIKit Dynamics でよく使用されますが、同様のモデルに従っているかどうか疑問に思っていました。UIView の中心に対して、ビューがプッシュされるポイントをどこから開始するかを指定するために使用されます。
指定UIOriginMake(5.0, -5.0)
した場合、中央から右下に変更されますか? 縦に5つ下に、横に5つ下に行くように?それとも、水平方向に 5 ポイント、垂直方向に 5 ポイント上にあることを示す従来の UIView モデルに従っていますか?
UIView のモデルに従っていないと考える理由はありませんが、私は肯定的ではなく、確認したかったのです。
ios - 自動レイアウト、UIDynamics、およびアニメーション
私は自動レイアウトにかなり慣れていないので、ビューをアニメーション化する方法について混乱しています。
layoutIfNeeded
私は多くのことを読んで、制約を保持し、編集し、UIView
アニメーション ブロックにラップする必要があることを知っています。
でもやろうとなると、ちょっと迷います。たとえば、このアニメーションがどのように行われるかを誰かが説明してくれれば幸いです。
UIPanGestureRecognizer
おそらく a を使用して、先頭のスペースからコンテナーへの制約を変更すると思いますconstant
が、おそらく UIDynamics を使用します (右側のバウンス効果のために?)。
ios - UIPushBehavior によって操作されているビューがあまり回転しないようにするにはどうすればよいですか? とんでもない金額です
現在、UIPushBehavior
ユーザーがUIPanGestureRecognizer
. それは機能しますが、私の問題は、ビューが途方もなく回転することです...まるでスポーツカーのタイヤに取り付けられているようです.
これは私が添付する方法ですUIPushBehavior
:
それをさらに操作するために何を変更する必要があるのか 正確にはわかりません。速度とすべてが完璧です。私はそれがばかげて回転することを望んでいません.
ios - プッシュされたビューの移動がいつ停止したかを知る方法。UIKit ダイナミクス
私はモードUIView
を適用する を持っています。押されたものの動きが止まったことを知る最も簡単な方法は何ですか?UIPushBehavior
UIPushBehaviorModeInstantaneous
UIView
objective-c - UICollisionBehavior を使用して、ビューが画面上になくなったことを検出するにはどうすればよいですか?
UICollisionBehavior
UIKit Dynamics で使用して、画面外にスローしたビュー ( UIAttachmentBehavior
andを使用UIPushBehavior
) が実際に完全に画面外になったときを把握しようとしています。
進行中に追跡できないため、複雑だと感じています。スローされたらUICollisionBehavior
、最後のエッジがスーパービューと「衝突」したときを検出するために使用して把握しようとしています。これは、NSTimer ソリューションまたは同様のものと比較して、画面外にあるときを把握する最も簡単な方法のようです (ただし、より簡単な方法を思いつくことができれば、私はすべて耳にします!)。
このプロジェクト(具体的にはこちら)で見た解決策は次のとおりです。
これは、衝突の境界がどこにあるかを計算し (正直なところ、完全には理解していません)、衝突が検出されたときにデリゲートが呼び出されたときに を呼び出しますremoveFromSuperview
。
しかし、何らかの理由で、これは非常に不安定に機能します。時々私はそれを画面の外に投げ出し、実際には衝突が検出されたデリゲートを何らかの形で呼び出すことは決してありません。タイミングも少し遅くなることが多いです。
私のセットアップに関する限り、フレームがスーパービューの境界に設定された UIScrollView を画面外にスローするだけです(self.view
View Controller内)。
ビューを離れるときの衝突検出を設定するより良い方法はありますか?