Всякий раз, когда я загружаю свой GameScene из своего меню, размер становится слишком большим

#swift #sprite-kit #scene

#swift #sprite-kit #сцена

Вопрос:

я довольно новичок в swift, и я буквально не могу понять это где угодно. Когда я загружаю игру без MenuScene, она отлично загружает все ресурсы и все остальное, но в тот момент, когда я запускаю с помощью MenuScene, она не масштабируется должным образом. Заранее спасибо за любую помощь.

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let gameScene = GameScene()
view!.presentScene(gameScene)
scene?.scaleMode = .aspectFill

это что-то в GameScene, что мне нужно изменить?

Комментарии:

1. Трудно помочь вам без каких-либо изображений. Однако попробуйте добавить SKCameraNode

2. Это сработало! теперь у меня просто проблема с моим спрайтом, который я настроил в файле SKS, который не отображается на экране. Спасибо вам все же! одна проблема осталась одна!

Ответ №1:

Я взял ответ Simones и подумал, что это сработало, но он просто переместил экран, но у меня все еще была проблема с тем, что мои спрайты не изменялись, в итоге я добавил тот же код в представление if let с контроллера gameview, чтобы мои касания начались. Это сработало именно так, как я хотел.

  override func   touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let view = self.view {

        if let scene = GameScene(fileNamed: "GameScene") {
            scene.scaleMode = .aspectFill
            view.presentScene(scene)
  

Комментарии:

1. да, если вы посмотрите на код, ваш GameScene загружает файл, который определяет ваш размер. Вы также устанавливаете режим масштабирования новой сцены, а не потенциально старой сцены (я понятия не имею, какая сцена ?.scalemode будет работать после представления новой сцены. Я бы подумал, что это будет либо nil, либо self, а не новая сцена)