Вот отрываю 36 пример, где якобы показана работа с с картой тайлов.
// Swap grass and water if (layer->GetTile( x, y)->GetGid( ) < 9) // First 8 sprites in the "isometric_grass_and_water.png" tileset are mostly grass and from 9 to 24 they are mostly water sprite->SetSprite( layer->GetTile( 0, 0)->GetSprite( )); // Replace grass by water sprite used in top tile else sprite->SetSprite( layer->GetTile( 24, 24)->GetSprite( )); // Replace water by grass sprite used in bottom tile
На деле, мы подменяем картинку в тайле, но номер у тайла остаётся прежний. и зачем это надо? Если всё так задумано было, то зачем нужен этот GetGid()?
Я вообще не понимаю, как использовать это всё. Вот я хочу генерировать свою карту, то нет реальных методов, чтобы присваивать нужные значения тайлам.
stratego
> не понимаю
это как раз и есть тот чертов ООП, который вы не любите)
инкапсуляция, млин)
stratego
> но номер у тайла остаётся прежний
ваще по приведенному коду нельзя сделать такой вывод.
передергивание ида может выполняться в нутрях sprite->SetSprite(...
ну а энтот самый sprite, это очевидно не просто одинокая картинка,
а очевидно целый компонент со своей начинкой среди которой возможно есть и id.
Если запустить пример, то видно, что он подменяет только картинку, и что было водой, то водой и осталось, хоть и выглядит как трава ))
Да и спрайт не имеет никакого значения, которое тянуло бы на личный номер так сказать )) Оно и понятно, спрайт же везде используется, не только в тайловых картах.
В моём представление, тайловая карта должна хранить в себе массив картинок и ссылку, индекс на нужную картинку в каждой своей клетке, ну это если по простому говоря. В данном случае слой, должен это хранить, для каждого слоя - свой набор же. Всё таки Движок не на первую Циву рассчитан, а на все случаи жизни ))