Как указал KnightOfDragon, вы используете .first
. Это означает, что ваш код ищет первое касание в вашей сцене, а затем идет оттуда. Ваша игра не позволит вам использовать оба джойстика одновременно, потому что вы не позволите им использовать их одновременно.
Эти операторы if, которые вы используете в своих различных сенсорных функциях:
for _ in touches {
if touches.first!.location(in: cam).x < 0 {
}
if touches.first!.location(in: cam).x > 0 {
}
}
Должно выглядеть так:
for touch in touches {
let location = touch.location(in: self)
if location.x < 0 {
moveStick.moveJoystick(touch: location)
}
if if location.x > 0 {
shootStick.waponRotate(touch: location)
}
}
Это должно исправить все ваши ошибки.