Tôi muốn tạo cảnh quan ứng dụng là phổ, để các nút sprite tỷ lệ tương ứng với bất kỳ kích thước chế độ xem nào đang chạy ứng dụng. Tôi muốn một giải pháp hoàn toàn có lập trình vì tôi không thích IB.Ứng dụng thiết bị phổ dụng iOS với SpriteKit, cách chia tỷ lệ các nút cho tất cả các chế độ xem?
Trò chơi của tôi khá đơn giản và tôi không cần cuộn hoặc thu phóng bất kỳ loại nào, vì vậy toàn bộ trò chơi sẽ luôn có mặt và chiếm toàn bộ lượt xem.
Có thể những gì tôi đang tìm kiếm là thay đổi kích cỡ của cảnh để luôn phù hợp với chế độ xem không? Nếu vậy, bạn có thể giải thích điều này hoàn toàn vì tôi đã cố gắng thay đổi phần này của bộ điều khiển quan điểm của tôi
if let scene = GameScene(fileNamed:"GameScene")
là phương pháp xây dựng mà phải mất kích thước như một tham số nhưng Xcode không thích điều đó.
Những điều tôi đã cố gắng
- Sử dụng các phần phân đoạn của self.view.bounds.width/chiều cao. Điều này thường làm cho tất cả các iPhone trông tốt, nhưng trên iPad kéo dài và nghiêng các nút và hộp biên giới xung quanh xemw.
- Thay đổi scaleMode trong tất cả bốn loại. Tôi muốn giữ cho thực hành tốt và cảm thấy như .AspectFill (mặc định) là một trong những tôi nên làm cho ứng dụng của tôi làm việc với, nhưng mở để gợi ý. Chú thích; Tôi không muốn các cạnh màu đen trên bất kỳ thiết bị nào, chỉ toàn bộ màn hình được hiển thị/được tỷ lệ tương ứng.
- Áp dụng các ràng buộc có lập trình. Bây giờ tôi là khá mới này và không hiểu ràng buộc hoàn toàn, nhưng không có hướng dẫn tôi đã nhìn thấy ngay cả từ RayWenderlich nói về ràng buộc trên các nút vì vậy tôi đã không delve sâu trong này.
Sử dụng phương pháp như thế này để chuyển đổi điểm giữa các chế độ xem. Điều này thực sự làm việc khá tốt cho việc định vị điểm của các nút, và nếu có thể tôi muốn phương pháp này hoạt động, nhưng sau đó tôi vẫn có vấn đề về kích thước của các nút. Ngoài ra khi tôi xây dựng cho iPad với phương pháp này xem dường như bắt đầu như chân dung và các nút nhìn tốt nhưng sau đó tôi phải tự chuyển nó sang phong cảnh và các sprites và xem ranh giới một lần nữa nhận được điều sai lầm. Đây là phương pháp:
func convert(point: CGPoint)->CGPoint { return self.view!.convertPoint(CGPoint(x: point.x, y:self.view!.frame.height-point.y), toScene:self) }
Hướng dẫn vô số vid trên RW và mọi nơi khác trên internet.
Cảm ơn bạn trước! Tôi đánh giá cao sự giúp đỡ. Tôi biết chủ đề này là kỳ lạ bởi vì rất nhiều người đặt câu hỏi về nó nhưng tình hình của mọi người dường như là đủ khác nhau mà một giải pháp không phù hợp với tất cả.
Cảm ơn sự trợ giúp! Tôi đã đánh dấu chính xác vì nó chứa một giải pháp hợp lệ cho vấn đề của tôi. Tuy nhiên tôi chỉ giải quyết nó một cách khác và sẽ dính phương pháp này: Trong info.plist của tôi, tôi lưu ý rằng định hướng màn hình cho iphone và ipad đã có và các quan điểm chân dung cho ipad vẫn còn đó là tốt. Tôi chỉ cần xóa chúng khỏi danh sách. Sau đó tôi cũng cần thiết đặt scene.size thành skView.bounds.size và hai thứ đó đã sửa nó (một cái không có cái khác sẽ phá vỡ chương trình). Bây giờ tôi tiếp tục vị trí và quy mô các nút liên quan đến xem và tất cả mọi thứ hoạt động tốt. – ljs
Cảm ơn bạn đã đánh dấu. Yeah tôi đã không nhận ra bạn đang tìm kiếm những thứ phong cảnh trong plist. Có một chút lạ lùng khi hai mục đó vẫn còn ngay cả khi bạn bỏ chọn chân dung trong Xcode, khiến tôi đau đầu nhiều lần. Happy code – crashoverride777