SwiftでSpriteKitを使って、スーパーマリオのような横スクロール型アクションゲームを作りたいのですが、プレイヤーの水平移動時に、まれに地面と衝突(反射)が発生してしまい、プレイヤーを滑らかに動かすことができず、困っております。
<主な物理設定>
- シーンの重力(gravity) = Y方向のみ: -9.8
- プレイヤーと地面の摩擦係数(Friction) = 0.2
- プレイヤーと地面の反射係数(Restitution) = 0
- プレイヤーの移動は、applyForce()でX方向の力を加えることで行っています。
update()でプレイヤーの水平移動時の力の発生をモニタしてみると、基本的にY方向の力(velocity.dy)は0で推移するのですが、ふとしたタイミングでY方向のプラスの力が発生し、そのタイミングで衝突が発生してプレイヤーがピクッと動いてしまいます。
これはSpriteKitの特性上どうしようもないものでしょうか?
このようなご経験をお持ちの方がいらっしゃいましたら、どんな事でも構いませんのでアドバイスいただけますと幸いです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/01 12:11
2017/06/01 21:41 編集
2017/06/01 22:21