Tôi đang làm việc trên một ứng dụng phụ 2d trong PyGame. Đối với mỗi bản đồ, chúng tôi sử dụng một kết cấu (đây là kích thước thực tế của kết cấu):
Sau đó, chúng tôi tải hình ảnh với mã này:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Như bạn có thể thấy, kết cấu được thổi lên 6 lần để tạo kết cấu bản đồ thực tế. Trung bình kết cấu này là khoảng 4500x800. Kết cấu này phải được làm mờ trên màn hình mọi khung hình , vì toàn bộ màn hình bị bẩn (nhờ cuộn bên). Chúng tôi làm điều đó bằng cách sử dụng mã này:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
Và nó hoạt động. Vấn đề là nó khá chậm: Tôi nhận được 40 FPS ít ỏi trên một PC thấp, và điều đó không có bất kỳ AI / đối tượng thực tế nào đang diễn ra, trong khi chúng tôi đang nhắm tới 60 FPS. Làm thế nào chúng ta có thể tăng tốc này?
Lưu ý rằng mã trên được vệ sinh và đưa ra khỏi bối cảnh. Mã đầy đủ có thể được tìm thấy ở đây: https://github.com/nightcracker/PyGG2
Và cuối cùng nhưng không kém phần quan trọng, trong khi hình ảnh trên có thể trông giống như 8 bit, có những yếu tố trong trò chơi đòi hỏi độ sâu bit nhiều hơn.