Например:
1- слой это просто тайлы карты
2- персонаж, враги, NPC
3- Специальные объекты
Совсем необязательно (и даже вредно) городить для этого полупрозрачные пбоксы.
Пример простейшей реализации.
Создаёшь три массива.
При размере карты 10х10
1) MapObjects(9,9) - здесь будут храниться идентификаторы обьектов карты (тайлы карты )
2) PersonObjects(9,9) - здесь будут храниться идентификаторы персонажей (персонаж, враги, NPC )
3) SpecialObjects(9,9) - здесь будут храниться идентификаторы специальных обьектов.
При отрисовке определенного квадрата на карте (к примеру квадрата 5-2), сначала будет отрисовываться картинка, id которой содержится в массиве MapObjects(5,2).
Затем из массива PersonObjects(5,2) (если он не пуст. т.е к примеру, если его значение не равно -1).
Ну и затем SpecialObjects(5,2)
Это вкратце. А вообще советую почитать литературу по созданию 2D игр. Там много интересных приёмов.