0
我剛剛添加了碰撞,現在我的「英雄」會前往他想要的位置,然後傳送到屏幕的左側,然後我只能看到約1/8的他! Here for ImageXcode Swift移動的位置 - 碰撞
這裏是我添加碰撞的代碼,這隻發生在我將Dynamic設置爲「true」的情況下,如果我將它設置爲false,他會去他想要的位置,我可以完全看到他!但是我需要將Dynamic設置爲true,這樣他才能碰到我添加到碰撞中的牆壁。
var heroCategory: UInt32 = 1
var wallCategory: UInt32 = 2
hero = CSHero()
hero.position = CGPointMake(70, movingGround.position.y + movingGround.frame.size.height/2 + hero.frame.size.height/2)
hero.physicsBody = SKPhysicsBody(rectangleOfSize: hero.size)
hero.physicsBody?.dynamic = true
hero.physicsBody?.allowsRotation = false
hero.physicsBody?.categoryBitMask = heroCategory
hero.physicsBody?.collisionBitMask = wallCategory
addChild(hero)
wallGenerator = CSWallGenerator(color: UIColor.clearColor(), size: view.frame.size)
wallGenerator.position = view.center
wallGenerator.physicsBody = SKPhysicsBody(rectangleOfSize: wallGenerator.size)
wallGenerator.physicsBody?.dynamic = false
wallGenerator.physicsBody?.categoryBitMask = wallCategory
wallGenerator.physicsBody?.collisionBitMask = heroCategory
我該如何得到它,所以當我將Dynamic設置爲true時,他會處於我想要的位置?
我相信你的意思是**這個**代碼? 'FUNC generateWall(){ VAR規模:CGFloat的 設蘭特= arc4random_uniform(2)如果 蘭特== 0 { 規模= -1.0 }否則{ 規模= 1.0 } 設壁= CSWall() wall.position.x = size.width/2 + wall.size.width/2 wall.position.y = scale *(kCSGroundHeight/2 + wall.size.height/2) addChild(牆)' –
或者這個代碼'let WALL_WIDTH:CGFloat = 30.0 let WALL_HEIGHT:CGFloat = 50.0 let WALL_COLOR = UIColor.blackColor() override init(){ super.init(texture:nil,color:WALL_COLOR,size:CGSizeMake(WALL_WIDTH,WALL_HEIGHT)) startMoving() }' –
抱歉。它已經有一段時間,因爲我做了sprite套件,你有足夠的信息: 'wallGenerator.physicsBody = SKPhysicsBody(edgeLoopFromRect:wallGenerator.frame)'是你想要做的,這隻會給你一個邊緣。 – Knight0fDragon