SKActions의 작동 방식을 이해하려고합니다. 특히 SKAction.runAction()
을 사용하면 매개 변수 중 하나가 애니메이션의 지속 시간입니다. 그러나 그것이 내가 지속 시간으로 넣었던 것처럼, 애니메이션은 모든 프레임을 렌더링하는 것처럼 보입니다. 다른 곳에서 SKAction.runAction()
행을 넣으려고했지만 update()
무시 방법 인 SKScene
에서만 작동하는 것으로 보입니다. SKAction.repeatActionForever
을 시도했지만 다른 프로세스와 병렬로 실행할 수없는 것 같습니다.SKAction 지속 시간은 프레임 속도와 관련하여 어떻게 작동합니까?
내 질문은, 애니메이션 기간 동안 필요한 매개 변수가있는 경우, 하나는 어디 프레임 속도 대신 주어진 기간을 기반으로 애니메이션을 실행하는 방법을 배치할까요?
GameScene.swift (.. 플레이어 클래스는 문자 클래스의 서브 클래스입니다 아래 코드 참조)
let player = Player()
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
//Code here to recognize user inputs
scene?.addChild(player.sprite)
}
override func update(currentTime: CFTimeInterval) {
player.sprite.runAction(SKAction.runBlock(player.move))
}
}
CharachterClass.swift 이동() 함수
:이
내 코드입니다func move(){
switch(direction){
case "up":
sprite.position = CGPoint(x: sprite.position.x, y: sprite.position.y + speed)
case "down":
sprite.position = CGPoint(x: sprite.position.x, y: sprite.position.y - speed)
case "right":
sprite.position = CGPoint(x: sprite.position.x + speed, y: sprite.position.y)
case "left":
sprite.position = CGPoint(x: sprite.position.x - speed, y: sprite.position.y)
default:
break
}
SKAction.moveTo(sprite.position, duration: 1)
}
참고 : direction
변수 스프라이트가 이동되고 speed
변수 화소의 총계 스프라이트이라는 방향 SKAction
이 실행될 때마다 이동해야합니다.