Đây là màn hình của những gì đang diễn ra để bạn có thể có được một khung tham chiếu.
Vấn đề tôi gặp phải là trò chơi của tôi bị chậm lại do số lượng kết cấu hoán đổi tôi đang thực hiện trong cuộc gọi rút thăm của mình. Vì các bức tường, ký tự, sàn nhà và tất cả các đối tượng nằm trên tấm sprite tương ứng của chúng có chứa các loại đó, mỗi lần vẽ gạch, kết cấu được tải được hoán đổi không dưới 3 đến 5 lần khi nó quay vòng và vẽ các họa tiết để tạo lớp đúng cách.
Bây giờ, tôi đã thử ném tất cả các đối tượng phổ biến vào danh sách tương ứng của chúng, và sau đó sử dụng layerDepth vẽ chúng theo cách đó làm cho mọi thứ tốt hơn rất nhiều, nhưng vấn đề mới mà tôi gặp phải là cách cửa ra vào / cửa sổ của tôi được vẽ trên tường. Cụ thể, tôi đang sử dụng giấy nến để xóa một khối trên các bức tường được vẽ theo hình cửa / cửa sổ để khi bức tường vẽ, nó sẽ có một lỗ có kích thước cửa / cửa sổ trong đó.
Đây là cách mà bản vẽ của tôi được thiết lập cho các bức tường khi tôi đi lát gạch thay vì nhóm các vật thể thông thường.
- đầu tiên nó sẽ kiểm tra xem cửa / cửa sổ có ở trên bức tường này không. Nếu không, nó sẽ bỏ qua tất cả các bước và chỉ vẽ bình thường. Nếu không thì
- kết thúc spriteBatch hiện tại
- Xóa bộ đệm với màu trong suốt để giữ lại những gì đã vẽ
- bắt đầu một spritebatch mới với các thiết lập stprint
- vẽ khu vực cửa
- kết thúc spriteBatch
- bắt đầu một spritebatch mới có tính đến stprint đã thiết lập trước đó
- vẽ bức tường mà bây giờ sẽ được vẽ với một lỗ trên đó
- kết thúc spritebatch
- bắt đầu một spritebatch mới với các cài đặt bình thường để tiếp tục vẽ gạch
Trong bản vẽ bằng cách vẽ gạch, việc xóa bộ đệm độ sâu / stpson không thành vấn đề vì tôi không sử dụng bất kỳ lớp nào để sắp xếp những gì vẽ lên trên những gì.
Bây giờ tôi đang vẽ từ danh sách các đối tượng phổ biến thay vì xếp từng ô, nó đã tăng tốc cuộc gọi vẽ của tôi một cách đáng kể nhưng dường như tôi không thể tìm ra cách để giữ cho hệ thống stprint che khuất khu vực cửa ra vào hoặc cửa sổ sẽ được vẽ vào một bức tường. Nguyên nhân của vấn đề là khi tôi kết thúc một spriteBatch để thay đổi DepthStpsonState, nó sẽ làm phẳng RenderTarget hiện tại và không còn bất kỳ sự sắp xếp độ sâu nào cho bất kỳ thứ gì được vẽ sâu hơn nữa. Điều này có nghĩa là các bức tường luôn được vẽ lên trên tất cả mọi thứ, bất kể độ sâu hay vị trí trong thế giới trò chơi và thậm chí là chồng lên nhau vì khuôn tô phải xảy ra một lần cho mỗi bức tường có cửa hoặc cửa sổ.
Có ai biết một cách để có được xung quanh này? Để đun sôi nó xuống, tôi cần một cách để vẽ những thứ được sắp xếp theo độ sâu của lớp trong khi cũng có thể tô khuôn / che đi những phần của các họa tiết cụ thể.