Mapa kafelkowa
Ostatnio zmodyfikowano 2016-01-10 17:06
Japonio Temat założony przez niniejszego użytkownika |
Mapa kafelkowa » 2016-01-10 15:12:48 Wie ktoś gdzie mogę znaleźć informacje na jej temat ? Przeszukiwałem szerokie pasma internetowe w celu znalezienia informacji , jak napisać mapę kafelkową , jednak nie znajdywałem jej na C++. Czy mógłby ktoś mi podać linka , albo chociaż naprowadzić mnie na właściwą drogę , żeby tą mapę napisać ?
|
|
Gibas11 |
» 2016-01-10 15:54:07 Czego od tej mapy kafelkowej oczekujesz? Tego typu twory mogą się bardzo różnić funkcjonalnością, więc nie dziw się, że trudno coś konkretnego znaleźć w internecie. :\ |
|
Japonio Temat założony przez niniejszego użytkownika |
» 2016-01-10 15:58:00 Ale chciałbym , zobaczyć jakiś przykład , albo parę przykładów map kafelkowej a nie. Nie wiem od której strony mam się za to brać ;/ |
|
Gibas11 |
» 2016-01-10 16:09:29 |
|
Japonio Temat założony przez niniejszego użytkownika |
» 2016-01-10 16:29:50 bardzo bym poprosił :) , a na razie bd posiłkował się teorią z javy |
|
Gibas11 |
» 2016-01-10 17:06:10 Ok, mam. całość jest bardzo prosta a kafelki są dodane poniekąd na siłę (jedyna rzecz w strukturze kafelka to znak wyświetlany później na ekranie), ale praktycznie tak samo działa to w prostych grach 2D. W miarę łatwo to rozbudować i mam nadzieję, że się połapiesz. --main.cpp-- #include <iostream> #include <fstream> #include <map> using namespace std;
struct Tile { char c; Tile( char _c ); }; Tile::Tile( char _c = ' ' ) { c = _c; }
class mapEngine { private: map < unsigned char, Tile > _tileSet; Tile ** _map; int _sizeX, _sizeY; public: void registerTile( unsigned char ID, char c ); void loadFromFile( const char * file ); friend ostream & operator <<( ostream & out, mapEngine & En ); };
void mapEngine::registerTile( unsigned char ID, char c ) { Tile tmp( c ); _tileSet[ ID ] = tmp; }
void mapEngine::loadFromFile( const char * file ) { ifstream in( file ); in >> _sizeY; in.get(); in >> _sizeX; _map = new Tile *[ _sizeX ]; for( int i = 0; i < _sizeX; i++ ) _map[ i ] = new Tile[ _sizeY ]; for( int x = 0; x < _sizeX; x++ ) { for( int y = 0; y < _sizeY; y++ ) { unsigned int ID; in >> ID; _map[ x ][ y ] = _tileSet[ ID ]; } } in.close(); }
ostream & operator <<( ostream & out, mapEngine & En ) { for( int x = 0; x < En._sizeX; x++ ) { for( int y = 0; y < En._sizeY; y++ ) out << En._map[ x ][ y ].c; out << endl; } }
int main() { mapEngine engine; engine.registerTile( 0, ' ' ); engine.registerTile( 1, '#' ); engine.loadFromFile( "mapa.map" ); cout << engine; return 0; }
--mapa.map-- 12x15 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1
--wyjście programu-- ##### ##### # #### # # # # #### # ######### ## ######### ## # #### # # # # #### # ## ######### ## ######### # #### # # # # #### # ##### #####
|
|
« 1 » |