2015-05-27 2 views
-1

У меня возникла странная проблема, позволяющая правильно настроить мой уровень на основе tilemap. На оси y все плитки являются нормальными и выровнены, вместо этого на оси x они, кажется, делятся на пробел, я не могу понять, почему ...Правильно отображать Tilemap на экране

Я создал матрицу с значениями перечисления (от 0 до 2), и я циклически менял свою матрицу в a для цикла , чтобы отобразить плитку с текущим номером: ex. GROUND = 0; и т.д ...

Вот фотография того, что он выглядит как http://it.tinypic.com/r/ali261/8

Вот спрайт для плитки http://it.tinypic.com/r/21kggw5/8

я добавлю код здесь.

for(int y = 0; y < 15; y++) 
      { 
       for(int x = 0; x < 20; x++) 
       { 
        if(map[y][x] == GROUND) 
         render(tileTex,x*64 - camera.x,y*64 - camera.y,&gTileSprite[0],0,NULL,SDL_FLIP_NONE); 
        else if(map[y][x] == UGROUND) 
         render(tileTex,x*64 - camera.x,y*64 - camera.y,&gTileSprite[1],0,NULL,SDL_FLIP_NONE); 
        else if(map[y][x] == SKY) 
         render(tileTex,x*64 - camera.x,y*64 - camera.y,&gTileSprite[2],0,NULL,SDL_FLIP_NONE); 

        tBox[y][x].x = x*64; 
        tBox[y][x].y = y*64; 
        tBox[y][x].w = TILE_WIDTH; 
        tBox[y][x].h = TILE_HEIGHT; 
       } 
      } 
+0

Вы пытались сравнить плитку размером 64x64 с помощью спрайт-карты с одиночной плиткой размером 64x64, отображаемой на экране? Трудно сказать, не видя спрайта, но похоже, что на плитки происходит фильтрация (сглаживание). Если плитки окружены прозрачными областями, крайние пиксели могут стать размытыми (смешанными) с прозрачными пикселями. Видеть спрайт-лист определенно будет преимуществом в диагностике этой проблемы. Приведенный выше код не показывает мне никаких очевидных проблем. – enhzflep

+0

Я добавил его сейчас @enhzflep – Steve

+0

вы гениальный мой друг @enhzflep благодаря вам я нашел проблему, которая на самом деле была на tilemap. Я увеличил изображение, и я нашел эти проклятые размытые пиксели! пожалуйста, сделайте ответ, чтобы я мог принять ваш ответ. Steve – Steve

ответ

1

В дополнение к выше замечания, нужно быть осторожным, чтобы избежать какой-либо размытости по краям плиток, так как их повторение будет делать какие-либо дефекты более очевидно, чем если бы они были просмотрены в изоляции.

Размытие может быть введено в процессе наложения частей плитки на конечную/промежуточную цель или, как кажется (и подтверждено), в этом случае исходный материал может иметь размытые края.

В частности, при работе с изображениями с такими «низкими» размерами пикселей нужно быть бдительными и следить за тем, чтобы любые/все операции изменения размера выполнялись в редакторе изображений без повторной выборки.

Хотя билиновый/кубический повторный выборка может потребоваться при смешении собранного изображения на экране, то никогда не, желательно, чтобы такой повторный выборка происходил с исходным материалом.

Смежные вопросы