私は最初の試合をしています、プレーヤーのブロックは1つです。ブロックの左側が少し湾曲していて、右はまっすぐですそれが重要かどうか分かりません)スプライトキット(スウィフト)ノード摩擦 - 画面ジャンプ
レイヤーが左の位置にあるとき、プレイヤーがブロックのどの部分に接続されているかについて混乱しているかのように画面が上下にジャンプします。
私は移動しようとしますが、プレイヤーはスタックしています(ジャンプしない限り)これはブロックの右側でも発生しますが、画面は右のようにジャンプしません(曲線でなければならないのですか?)。
私は摩擦と関係があると仮定しますが、ブロックの摩擦はゼロに設定されています。
これを修正するにはどうすればよいですか?ここで
は、ブロックのためのクラスです:
import SpriteKit
class Tile: SKSpriteNode
{
var textureAtlas:SKTextureAtlas = SKTextureAtlas(named:"Tiles.atlas")
func spawn(parentNode:SKNode, position:CGPoint, size:CGSize = CGSize(width: 48, height: 48), texture_id: Int = 1)
{
parentNode.addChild(self)
self.size = size
self.position = position
self.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: self.size.width, height: self.size.height))
self.physicsBody?.affectedByGravity = false;
self.physicsBody?.dynamic=false
//self.physicsBody?.friction = 0
self.texture = textureAtlas.textureNamed("\(texture_id).png");
if texture_id == 17 {
//self.physicsBody?.friction = 0;
self.physicsBody?.categoryBitMask = PhysicsCategory.ground.rawValue
}
}
これはプレーヤーのためのクラスの一部である:
self.physicsBody?.linearDamping = 1.0
self.physicsBody?.mass = 84
self.physicsBody?.allowsRotation = false
self.physicsBody?.categoryBitMask = PhysicsCategory.penguin.rawValue
self.physicsBody?.contactTestBitMask = PhysicsCategory.enemy.rawValue
感謝。
何がダンピングオフにして、マスプロパティを削除する場合はどうなりますか?私はそこから始まり、あなたの結果がより良いかどうかを見ます。 – mfessenden
私はそれらを取り除いた - 私はジャンプすると、彼は今空中に飛ぶ! - これを修正する特別な機能はありませんか?私は数字で遊ぶだけですか? – garyconstable
'physicsBody.applyImpulse'プロパティを使用して、正のYデルタを適用し、彼の' physicsBody.dynamic'プロパティをtrueに設定します。 – mfessenden