2016-12-11 7 views
0

두 개의 노드, player 및 platfrom가 있습니다. 둘 다 물리학을 가지고있어. 내 플레이어가 여전히 있고 플랫폼이 SkAction으로 스크롤됩니다. 플레이어가 플랫폼 위에 절반 정도 닿았을 때 떨어졌습니다.물리 구조가 이미지 크기와 일치하지 않습니다.

player.physicsBody=SKPhysicsBody(rectangleOf:player.frame.size) 
player.physicsBody?.isDynamic=true 
player.physicsBody?.allowsRotation=false 
player.physicsBody?.affectedByGravity=true 

platform.physicsBody=SKPhysicsBody(rectangleOf:platfrom.frame.size) 
platform.physicsBody?.isDynamic=false 

platfrom 설정입니다.

plat.size=CGSize(width:(self.frame.width)*2,height:(self.frame.height)/3) 
plat.anchorPoint=CGPoint(x:0,y:0) 
plat.position=CGPoint(x:0,y:0) 
plat.zPosition = 2 
addChild(platform) 

내가 대신 사용하여 시도하지만 플레이어는 여전히

plat.physicsBody=SKPhysicsBody(rectangleOf:CGSize(width:platform.width, 
height: platform.frame.height)) 

나는 그들이 때 플레이어가 이동 서로 겹치지 않는 점에서, 노드가 단단한 물체처럼 행동 할 아래로 떨어진다. 또한 거기에 내가 사용할 수있는 대체 방법. 나는 정말로 물리학을 공부하는 것을 좋아하지 않는다.

+0

그래서 현재 코드는 어떻게됩니까? –

+0

'didMove'에'view.showsPhysics = true'를 설정해 씬에 물리학 자의 윤곽을 표시해보십시오. – 0x141E

+0

감사합니다. 명백하게 물리학 몸은 앵커 포인트 변화를 고수하지 않습니다. @ 0x141E –

답변

0

물리학에 대한 대안은 iOS 10 SKTilemapNode에 최근에 추가 된 것을 사용하여 배경을 만드는 것입니다. 각 타일에는 타일이 분쇄되었는지 여부를 나타내는 데이터가 태그 될 수 있습니다. 그런 다음 플레이어가 타일을 기준으로 움직이는 방법에 중점을 둡니다. 현재이 작업을 보여주는 예제가 많지 않으므로 WWDC 2016: What's new in SpriteKit에이 내용이 간략하게 나와 있습니다. 다른 리소스에는 배경 타일 맵을 작성하는 방법과 물리 엔진이 플랫폼 작성자에게 최상의 경험을 제공하지 않는 이유에 대한 설명이 포함 된 top down 예제가 포함되어 있습니다. Kenney's은 platformer 아트웍을위한 좋은 타일 소스입니다.