Размер для iPhone и iPad


#1

доброго дня) сделала контур дя игры строго по контуру экрана симулятора, на iPhone все нормально но когда переключаю на iPad картинка не соответствует границе экрана
как правильно прописать размеры?
делаю так:
self.scene?.size = CGSize(width: self.view!.bounds.size.width, height: self.view!.bounds.size.height) let size = CGSize(width: 350, height: 1000) let texture = SKTexture(imageNamed: "BackOpora1") let fon = SKSpriteNode(texture: texture) fon.position = CGPoint(x: 160,y: 500) fon.size = size fon.physicsBody = SKPhysicsBody(texture: texture, size: size) fon.physicsBody?.isDynamic = false fon.physicsBody?.affectedByGravity = false addChild(fon)


#2

У fon size должен быть как у сцены, а не 350х1000:

override func didMove(to view: SKView) {
    scene!.size = view.bounds.size
    let fon = SKSpriteNode(texture: SKTexture(imageNamed: "BackOpora1"))
    fon.size = scene!.size
    addChild(fon)
}

#3

фон получилось) а вот если обычный объект, его можно как-то увеличить?
let size3 = CGSize(width: 4, height: 70) let textureS3 = SKTexture(imageNamed: "Block3") let Block3 = SKSpriteNode(texture: textureS3) Block3.size = size3 Block3.position = CGPoint(x: (self.view?.frame.size.width)! / 2 - 155, y: (self.view?.frame.size.height)! / 2 - 141) self.addChild(Block3)


#4

По идее сцена должна быть одинакового размера для всех устройств, нужно удалить:

override func didMove(to view: SKView) {
    //scene!.size = view.bounds.size <--
    let fon = SKSpriteNode(texture: SKTexture(imageNamed: "BackOpora1"))
    fon.size = scene!.size
    addChild(fon)
}

Сцена будет растягивайся в зависимости от устройства и объекты на ней тоже.


#5

сцена растягивается, а вот объекты на ней нет(


#6

Видимо что-то вы делаете не так :slight_smile: попробуйте с малого, например с одного объекта:


#7

:sweat:

что то не так, не могу понять


#8

а как одновременно два девайса включить?


#9

Наверно у сцены нужно выставить scaleMode в aspectFill:

class GameViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if let view = self.view as! SKView? {
            if let scene = SKScene(fileNamed: "GameScene") {
                scene.scaleMode = .aspectFill
                view.presentScene(scene)
            }
            
            view.ignoresSiblingOrder = true
            
            view.showsFPS = true
            view.showsNodeCount = true
        }
    }

    override var prefersStatusBarHidden: Bool {
        return true
    }
}

#10

В терминале:

open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

Там всё сложно лучше этого не делать :slight_smile:


#11

да, получилось, спасибо:relaxed: