세로 장면에서 가로로 이동하는 birdNode (spriteNode)가 있습니다.내 Sprite-Kit 게임에이 작업을 구현하는 올바른 방법은 무엇입니까?
birdNode가 계란 (spriteNode)을 화면 하단의 cgPoint쪽으로 떨어 뜨립니다.
birdNode가 임의의 시간/위치에서 임의로 달걀을 떨어 뜨리 길 원합니다.
2 초 (birdNode가 화면을 가로 질러 이동하는 데 걸리는 시간) 사이의 임의의 숫자로 NSTimeInterval을 생성하고 eggNode를 birdNode 위치에 생성하고 dropEgg 함수를 호출하는 것을 고려했습니다.
I은 또한 dropEgg 함수를 호출 한 후
birdNode.position.x = randomPoint
eggNode에 로딩하고, 랜덤 CGPoint를 생성하는 것으로 간주 하였다.
내 질문에 다른 접근 방식을 사용해야합니까? 정확히 어디에 dropNode 함수를 호출해야합니까? 지금은 제대로 작동하지 않습니다.
아래의 currentTime 업데이트 함수에서 randomTime/randomPosition을 고려해 보았습니다.하지만 Node를 삭제하지만 모든 프레임 렌더링에서 알을 생성하므로 올바른 방법이라고 생각하지 않습니다.
override func update(currentTime: CFTimeInterval) {
}
다음은 난을 놓고 임의의 dropPoint float 및 새가 화면을 가로 질러 비행하는 코드입니다.
func dropEgg(){
//aim
let dx = eggNodeTarget.position.x - birdNode.position.x
let dy = eggNodeTarget.position.y - birdNode.position.y
let angle = atan2(dy, dx)
dragonProjectileNode.zRotation = angle
//Seek
var vx = turretNode.position.x
var vy = turretNode.position.y
//creates eggNodeSprite
loadEggNode()
//shoot
let shootAction = SKAction.moveTo(CGPointMake(vx, vy),duration: 0.75)
eggNode.runAction(shootAction)
}
func loadRandDropLocationX() -> CGFloat{
//or minNodeTimeValue?
var MinNodeSpawnValue = self.frame.size.width * 0.2
//or maxNodeTimeValue?
var MaxNodeSpawnValue = self.frame.size.width * 0.8
//or randomTime?
var randomPointUInt32 = UInt32(MaxSpawnValue - MinSpawnValue)
return (CGFloat(arc4random_uniform(randomPointUInt32)) + MinNodeSpawnValue)
}
func dragonMoveRight(){
let moveDragon = SKAction.moveTo(loadRandDestinationRight(), duration: 2.3)
dragonNode.runAction(moveDragon)
}
는 <3 @valarmorghulis 근무 –