मैं एक प्लेटफ़ॉर्मिंग गेम लिखने की कोशिश कर रहा हूँ जहाँ लेवल बैकग्राउंड के लिए स्प्राइट्स 512x512 विखंडू में टूट जाते हैं। मैं एक बार में 3 चंक्स याद में रखता हूं और स्क्रीन पर तीनों को ब्लिट करने के लिए कोड लिखने की कोशिश कर रहा हूं। यहाँ मेरे पास वर्तमान कोड है:
SDL_Rect where;
where.y = -game->camera->y;
where.x = -game->camera->x - MAP_WIDTH;
SDL_BlitSurface(left_chunk, NULL, screen, &where);
where.x = -game->camera->x;
SDL_BlitSurface(center_chunk, NULL, screen, &where);
where.x = -game->camera->x + MAP_WIDTH;
SDL_BlitSurface(right_chunk, NULL, screen, &where);
मैं जिस मुद्दे पर चल रहा हूं, वह यह है कि जो भी हिस्सा पहले धुंधला हो जाता है वह केवल वही दिखाता है जो दिखाता है। बाकी लोग ऑनस्क्रीन दिखाई नहीं देते। मुझे लगता है कि इस मुद्दे का अल्फा पारदर्शिता के साथ कुछ करना हो सकता है, लेकिन भले ही चोक ओवरलैप न हों, लेकिन वे अभी भी ब्लिट करने में विफल हैं। कोड के अन्य हिस्सों में मैं एक ही बार में स्क्रीन पर कई चीजों को ब्लिट कर रहा हूं, जैसे कि वर्ण और पृष्ठभूमि, और वे सभी सही तरीके से दिखाई देते हैं। कोड का यह विशेष खंड एकमात्र क्षेत्र है जिसका मैं इस समस्या से सामना कर रहा हूं।
अगर मैं उस लाइन को टिप्पणी करता हूं जो left_chunk को ब्लिट करती है, तो यह इसमें बदल जाती है: