Tôi đang cố gắng viết một trò chơi platforming trong đó các họa tiết cho nền cấp độ được chia thành các khối 512x512. Tôi giữ 3 khối trong bộ nhớ cùng một lúc và tôi đang cố gắng viết mã để làm mờ cả ba màn hình. Đây là mã hiện tại tôi có:
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);
Vấn đề tôi gặp phải là phần nào bị mờ trước là phần duy nhất xuất hiện. Phần còn lại không xuất hiện trên màn hình. Tôi nghĩ rằng vấn đề có thể có liên quan đến độ trong suốt của alpha, nhưng ngay cả khi các khối không chồng chéo lên nhau, chúng vẫn không thành công. Trong các phần khác của mã tôi đang làm mờ nhiều thứ trên màn hình cùng một lúc, chẳng hạn như các ký tự và hình nền, và tất cả chúng đều hiển thị chính xác. Đoạn mã đặc biệt này là khu vực duy nhất tôi gặp phải vấn đề này.
Nếu tôi nhận xét dòng làm mờ left_chunk, nó sẽ thay đổi thành dòng này: