2

저는 Swift 3와 SpriteKit을 사용하여 게임을 개발 중입니다. 나는 사용자가 수집 할 수있는 게임 중에 떨어지는 동전을 가지고있다. 지금은 떨어지고 회전이나 아무것도 없습니다. 떨어지는 동안 3D 회전 효과를 추가하고 싶습니다. 이 효과는 y 축을 중심으로 회전해야합니다. 이와 같은 3D 효과를 만드는 방법이나 다른 프로그램을 사용해야하는 것인지 잘 모르겠습니다.3D 코인 뒤집기 SKSpriteNode의 애니메이션

내가 발견 한 내가 다른 스택 오버플로 게시물에 대한 찾고 있어요하지만 목표 - C에서의 :와 나는 (링크에서) 할 수있는 방법을 발견했습니다

Spinning an image like a coin

코어 애니메이션/코어 그래픽,하지만 어떻게 SKSpriteNode에서 작동하게하는지 모르겠습니다.

var coinFlip = CATransition() 
    coinFlip.startProgress = 0 
    coinFlip.endProgress = 1.0 
    coinFlip.type = "flip" 
    coinFlip.subtype = "fromRight" 
    coinFlip.duration = 0.5 
    coinFlip.repeatCount = 2 

    yourView.layer.addAnimation(coinFlip, forKey: "transition") 

이 마지막 줄은 UIView에서만 작동하므로 SKSpriteNode에서 실행하려고하면 오류가 발생합니다.

누군가가 나에게이 작업을 수행하는 방법을 설명하거나 SKSpriteNode에 대해이 애니메이션을 만드는 또 다른 방법을 보여줄 수 있다면 크게 감사하겠습니다.

+0

는 신속한로 변환 - https://objectivec2swift.com/#/home/converter/ – penatheboss

+1

... 음 UIKit과 SpriteKit 너무 다른 동물이다, 작동하지 않습니다 코드는 스프라이트 키트 내가 아는 아무것도하지 않습니다 그 중 네가 기본적으로 찾고있는 것을 얻을 수 있다면, 3d 회전 효과를 만들고 그런 식으로 애니메이션을 만드는 텍스처를 만들어야 할 것입니다. – Knight0fDragon

+0

내가 생각한 ... 스프라이트 키트에서 이러한 유형의 애니메이션을 만드는 또 다른 비슷한 방법이 있습니까? – Nik

답변

1

동전의 xScale을 줄이거 나 늘려서 회전 효과를 만들었습니다. colorBlendFactor을 변경하면 빛이 비치지 않아야 동전이 어두워지는 것처럼 보입니다. 그것은 좀 지저분입니다

let scaleSequence = SKAction.sequence([SKAction.scaleX(to: 0.1, duration: 0.75), SKAction.scaleX(to: 1, duration: 0.75)]) 
let darkenSequence = SKAction.sequence([SKAction.colorize(with: SKColor.black, colorBlendFactor: 0.25, duration: 0.75, SKAction.colorize(withColorBlendFactor: 0, duration: 0.75)]) 
let group = SKAction.group([scaleSequence, darkenSequence]) 
fallingCoin.run(SKAction.repeatForever(group)) 

,하지만 작동합니다

여기 내 코드입니다. 간단히 말해서, 그것은 SKAction.group을 사용합니다. 그래서 액션이 동시에 실행되며, 각 시퀀스가 ​​동시에 실행되도록 그룹의 동전을 "어둡게"바꾸는 SKAction.sequence을 넣습니다. 또한 모든 지속 시간은 0.75입니다. 이 코드를 사용하는 경우 효과가 손상되지 않도록 모든 지속 시간이 동일한 지 확인하십시오.

xScale을 수정하는 대신 동전을 뒤집기보다는 튀기는 모양으로 만들려면 yScale을 대신 변경하십시오.

@Mobile Ben에게 올바른 방향으로 나를 안내해 주셔서 감사합니다!

+0

이제 이것이 하나의 긴 문장입니다 :) 이것을 몇 줄로 나누어 보았습니까?내 말은, 나는 SpriteKit에 매우 익숙하고 SKAction은 나의 fav이다. 그러나 무슨 일이 일어나고 있는지 이해하기 쉽다고해도 읽을 수는 없다. 몇 가지 진술을 통해이 코드를 훨씬 더 잘 만들 수 있습니다. – Whirlwind

+0

@Whirlwind 예. 권자. 이 방법은 필자의 신속한/SpriteKit "경력"에 정말 일찍 썼기 때문에 작성되었습니다. 내가 지금 고칠거야. – Nik