ฉันกำลังทำงานกับนักเล่นเกม 2 มิติใน PyGame สำหรับแต่ละแผนที่เราใช้หนึ่งพื้นผิว (นี่คือขนาดที่แท้จริงของพื้นผิว):
จากนั้นเราโหลดภาพด้วยรหัสนี้:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
อย่างที่คุณเห็นพื้นผิวจะถูกเป่าขึ้น 6 ครั้งเพื่อสร้างพื้นผิวแผนที่จริง โดยเฉลี่ยแล้วพื้นผิวนี้มีขนาดประมาณ 4500x800 พื้นผิวนี้ต้องถูกทำให้เบลอกับหน้าจอทุกเฟรมเพราะหน้าจอทั้งหมดสกปรก (ขอบคุณการเลื่อนด้านข้าง) เราทำเช่นนั้นโดยใช้รหัสนี้:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
และมันใช้งานได้ ปัญหาคือว่ามันค่อนข้างช้า: ฉันได้รับน้อย 40 FPS บนพีซีที่เหมาะสมและนั่นคือไม่มี AI / วัตถุจริงที่เกิดขึ้นในขณะที่เราตั้งเป้าไว้ที่ 60 FPS เราจะเร่งความเร็วนี้ได้อย่างไร?
โปรดทราบว่ารหัสข้างต้นถูกทำให้สะอาดและถูกนำออกจากบริบท รหัสเต็มสามารถดูได้ที่นี่: https://github.com/nightcracker/PyGG2
และสุดท้าย แต่ไม่ท้ายสุดในขณะที่ภาพด้านบนอาจดูเหมือน 8 บิตมีองค์ประกอบในเกมที่ต้องใช้ความลึกบิตมากกว่า