Tôi đang tạo trò chơi phổ dụng cho tất cả các thiết bị iOS ở chế độ dọc bằng Swift. Trong GameViewController tôi là tạo ra khung cảnh như thế này:Vị trí SkSpriteNode trong trò chơi phổ quát
let scene = GameScene(size:CGSize(width: 1536, height: 2048))
scene.scaleMode = .AspectFill
Hình nền có độ phân giải 1536x2048, và như vậy với scaleMode trên trên iPad được hiển thị ở kích thước đầy đủ của nó, trên iPhone 6 1152x2048 được hiển thị với bên tỉa. Hoạt động hoàn toàn tốt trên tất cả các thiết bị và chỉ cần một hình nền. Vấn đề là nếu tôi gọi cho size.width hoặc self.frame.size.width, nó luôn trả về 1536, ngay cả khi vùng hiển thị thực tế là v.d. 1152.
Làm cách nào tôi có thể đặt vị trí của SkSpriteNode liên quan đến khu vực hiển thị, sao cho nó sẽ là ví dụ 50x50 từ góc trên mọi thiết bị?
Vì vậy, bạn đang sử dụng chức năng này trong GameViewController và đó cũng là nơi bạn đang thêm giao diện người dùng? –
@shargath Rất tiếc, bạn nên nói chế độ xem chứ không phải sceneView. Tôi sẽ chỉnh sửa nó ngay bây giờ. Tôi đang sử dụng phương pháp này trong lớp cảnh.Và giao diện người dùng của tôi được thực hiện hoàn toàn bằng bộ phụ kiện. –
Tuyệt vời, bởi vì tôi đã làm toàn bộ giao diện người dùng của tôi cũng trong spriteKit nên lớp cảnh làm việc cho tôi :) –