2014-04-04 17 views
6

Như tôi đã nhìn xung quanh để biết thông tin về kết cấu spritekit, và tôi stumbled khi trích dẫn này:Làm cho các nút trong bản vẽ đơn lẻ với spritekit?

Nếu tất cả các trẻ em của một node sử dụng chế độ pha trộn và kết cấu tương tự atlas, sau đó Sprite Kit thường có thể rút ra những sprites trong một bản vẽ đơn. Mặt khác, nếu các con được tổ chức sao cho chế độ vẽ thay đổi cho mỗi sprite mới, thì Sprite Kit có thể thực hiện như một bản vẽ cho mỗi sprite, điều này khá không hiệu quả.

Nhưng kiểm tra này:

gạch với cùng một kết cấu (Tôi đảm bảo với bạn đó là một kết cấu, không chỉ là một màu) Untextured tiles

gạch với kết cấu của mình Textured tiles

Các số lượng vẽ có sự khác biệt là 40, mặc dù tất cả các kết cấu được sử dụng đến từ cùng một bản đồ.

Tôi có diễn giải từ 'atlas' sai không?

Đây là nơi tôi lưu trữ hình ảnh của tôi:

texture atlas

là ví dụ của tôi một 'bản đồ kết cấu,' hoặc là định nghĩa của 'atlas' ở đây một .png đơn chứa tất cả các hình ảnh cần thiết, và gạch cá nhân được cắt từ nó?

Hoặc là vấn đề có thể trong cách tôi tải/cái gì khác?

Cảm ơn!

Trả lời

5

Vấn đề ở đây rất có thể là do chính biểu đồ nút. Giả sử bạn có 100 sprites là con của scene, không phải là con của riêng chúng, và tất cả chúng đều sử dụng texture từ cùng một bản đồ và chế độ hòa trộn mặc định, Sprite Kit sẽ vẽ hàng loạt 100 sprites này trong một cuộc gọi vẽ duy nhất.

Tuy nhiên, nếu các hình xếp khối này có con riêng, có thể là các nút hình dạng hoặc nhãn để gỡ lỗi, thì điều này sẽ "ngắt" thao tác vẽ lô.

Kiểm tra biểu đồ nút của bạn. Hãy chắc chắn rằng tất cả các sprites lát là trẻ em của cùng một cha mẹ, và không có con của riêng mình, sử dụng các chế độ pha trộn và kết cấu tương tự từ cùng một bản đồ. Sau đó, hàng loạt bản vẽ chắc chắn sẽ hoạt động.

Nếu điều đó không hoạt động, hãy xác minh rằng thư mục tiles.atlas được chuyển đổi chính xác thành bản đồ kết cấu trong gói. Nếu bạn mở gói ứng dụng đã biên dịch, bạn sẽ tìm thấy một thư mục có tên 'tiles.atlasc' với một plist và một hoặc nhiều tệp png trong đó, chứa tất cả các hình ảnh riêng lẻ của thư mục. Hơn nữa, không có hình ảnh riêng lẻ nào xuất hiện trong nhóm - nếu chúng được thêm vào gói dưới dạng tệp riêng lẻ sử dụng cùng tên như trong tập bản đồ, thì Bộ Sprite sẽ mặc định tải các tệp hình ảnh riêng lẻ thay vì lấy chúng từ bản đồ kết cấu .

+0

Hm, điều này vẫn không hoạt động. Các nút sprite là con của nút, không phải của cảnh, đây có phải là vấn đề không? Không ai trong số họ có con. EDIT: TÔI LÀ MỘT IDIOT. Một trong những loại ngói của tôi đã đề cập đến một hình ảnh trong thư mục hình ảnh ... Và một ô đó đã vặn nó lên. Nó đã xảy ra là gạch đất rắn của tôi ... – IAmTheAg

+0

Um ... giúp tôi với một điều nữa. Tải kết cấu theo cách này có vẻ vô cùng hiệu quả.Khởi tạo sprites mất nhiều thời gian hơn cho tôi bây giờ, bởi vì bản đồ lát gạch cần được liên tục đạp xe qua và được tạo ra khi nó tiếp tục. Cách nhanh nhất để khởi tạo một sprite như thế nào? – IAmTheAg

+1

tốt, nếu bạn chạy ..imageNamed: phương thức rất nhiều (cả cho sprite và texture/textureatlas) có khả năng tạo ra rất nhiều chi phí. Đối với tilemap của tôi tôi giữ cho cả bản đồ trong một ref mạnh mẽ, và các kết cấu trong một mảng (được lập chỉ mục bởi GID) để truy cập nhanh. Có một cái nhìn vào renderer tilemap trong bộ kobold. – LearnCocos2D

Các vấn đề liên quan