나는 뒤쪽 수술에서 쌓아 올려 진 스위프트를 배웠으며, 이에 대한 도움을 주시면 대단히 감사하겠습니다.주요 변경 사항이있는 SKAction 스프라이트 동작
문제 설명 : 나는 히트 할 때 스프라이트를 뒤로 밀게하는 기능을 가지고 있습니다. 내가 사용할 때
self.runAction(jumpBackSequence)
나는 원하는 동작을 얻는다. (스프라이트는 좋은 거리를 다시 푸시됩니다.)
을 지금은 "withKey"를 사용하려면이 옵션을 업데이트 할 때 (I 다음 접촉 전진에 다시 정 동작을 중지 할 수 있어야하기 때문에 크게 dimished됩니다
self.runAction(jumpBackSequence, withKey: "moveStraightLine")
이 작업을 만들어 내 기능은 아래와 같습니다.
func pushBack(){
self.removeActionForKey("moveStraightLine")
let height:CGFloat = 5
let jumpDistanceA:CGFloat = 20
let jumpDistanceB:CGFloat = 20
let duration:NSTimeInterval = 0.15
let jumpUp = SKAction.moveByX(0, y:height, duration:duration)
let moveBack = SKAction.moveByX(jumpDistanceA, y: 0, duration: duration)
let jStep1 = SKAction.group([jumpUp, moveBack])
let jumpDown = SKAction.moveByX(0, y:(height * -1), duration:duration)
let moveBack2 = SKAction.moveByX(jumpDistanceB, y: 0, duration: duration)
let jStep2 = SKAction.group([jumpDown, moveBack2])
let moveZombie1 = SKAction.moveToX(0, duration: spawnSpeed1() )
let removeZombie1 = SKAction.removeFromParent()
let moveAndRemoveZombie1 = SKAction.sequence([moveZombie1, removeZombie1])
let jumpBackSequence = SKAction.sequence([jStep1, jStep2, moveAndRemoveZombie1])
self.runAction(jumpBackSequence)
// self.runAction(jumpBackSequence, withKey: "moveStraightLine")
}
시간 전에 조치를 제거하기 때문에 생각합니다. 키를 넣고 맨 위에 self.removeActionForKey ("moveStraightLine") 줄을 제거하면 어떻게됩니까? –
그 열쇠는 원래의 움직임을 멈추게합니다. 스프라이트를 만들 때 같은 키를 사용하여 액션을 통해 움직인다. 점프를 되돌리려면 먼저 제거해야합니다. 이상하게도 화면 너비의 일부만 사용하도록 코드를 업데이트하면 수정되었습니다. 나는 버그 나 좀 더 심오한 수수께끼를 만났을 지 확신하지 못한다. 시간을내어보고 회신 해 주셔서 감사합니다. 이미 스택 오버플로에 게시 할 시간을 가진 모든 사람들로부터 많은 것을 배우고 있습니다. –
다른 작업에 왜 같은 이름을 사용하고 있습니까? 다른 이름 바꾸기를 시도하십시오. –