Я делаю игру для iOS, где герой находится в самом левом углу экрана (ландшафтный режим), и она стреляет в монстров, идущих с правой стороны.Сейчас я следую этому уроку, потому что я новичок в играх для iOS: https://www.raywenderlich.com/71-spritekit-tutorial-for-beginners
Проблема, с которой я столкнулся, состоит в том, что код урока относится к 2013 году. Это влияет на положение CGPoints на сцене.(потому что центр теперь является серединой, а не левым краем), но также могут быть функции, которые облегчают его.Например, в уроке они объявляют
func +(left: CGPoint, right: CGPoint) -> CGPoint {
return CGPoint(x: left.x + right.x, y: left.y + right.y)
}
func -(left: CGPoint, right: CGPoint) -> CGPoint {
return CGPoint(x: left.x - right.x, y: left.y - right.y)
}
func *(point: CGPoint, scalar: CGFloat) -> CGPoint {
return CGPoint(x: point.x * scalar, y: point.y * scalar)
}
func /(point: CGPoint, scalar: CGFloat) -> CGPoint {
return CGPoint(x: point.x / scalar, y: point.y / scalar)
}
#if !(arch(x86_64) || arch(arm64))
func sqrt(a: CGFloat) -> CGFloat {
return CGFloat(sqrtf(Float(a)))
}
#endif
extension CGPoint {
func length() -> CGFloat {
return sqrt(x*x + y*y)
}
func normalized() -> CGPoint {
return self / length()
}
}
Только для того, чтобы иметь возможность подсчитать смещение между двумя точками и указать место, куда должен попасть снаряд:
let offset = touchLocation - projectile.position
let direction = offset.normalized()
Есть лиобновленная версия кода для вышеуказанного кода и, пожалуйста, если есть какие-либо другие учебные пособия для начинающих, которые реализуют функциональность стрельбы снарядами, укажите их в ответах.Спасибо!