Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Nazrix

Syntax Question for Tile-Based Engine

This topic is 6607 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a question about a tile-based game I'm working on. Actually it's the tile engine in Tricks of The Windows Game Programming Gurus. It's really a syntax question more than anything else. He initializes the world with this code.
    
char *world[21]=
{
"111111111111111111111111111111",
"100000000000000000000000000001",
"100002222220000000000000077701",
"100002222223333333333000077701",
"100002222227777777773000070001",
"100002222227777777773000070001",
"100000000377777777773000070001",
"107777700377777777773000070001",
"177777770377777777773000770001",
"107777700377777777773007700001",
"100777770377777777773777000001",
"100000707377777777773000000001",
"100007777377777777773000000001",
"100000000302222777773000000001",
"100000000332222777773000000001",
"100000000002222333333000000001",
"100000666666666666666666600001",
"100000800000000000000000800001",
"100000800000000000000000800001",
"100000000000000000000000000001",
"111111111111111111111111111111",
};
    
I was wondering how I would change the world later on in the code...like if you walk off of this map and I want to load the next set of tiles. I can't get the syntax right. I'm a little rusty on pointers. So, I just want to do something like world[21]={212121212...}; to load the new set of tiles. Just not sure about syntax... Thanks in advance...
Edited by - Nazrix on 4/18/00 1:03:07 PM Edited by - Nazrix on 6/6/00 12:19:15 PM

Share this post


Link to post
Share on other sites
Advertisement
It's better to load the tilemap from a file, but if you insist...


//Init the tilemap (this only works if world is a globabl var)

char *world[21]=
{
"111111111111111111111111111111",
"100000000000000000000000000001",
"100002222220000000000000077701",
"100002222223333333333000077701",
"100002222227777777773000070001",
"100002222227777777773000070001",
"100000000377777777773000070001",
"107777700377777777773000070001",
"177777770377777777773000770001",
"107777700377777777773007700001",
"100777770377777777773777000001",
"100000707377777777773000000001",
"100007777377777777773000000001",
"100000000302222777773000000001",
"100000000332222777773000000001",
"100000000002222333333000000001",
"100000666666666666666666600001",
"100000800000000000000000800001",
"100000800000000000000000800001",
"100000000000000000000000000001",
"111111111111111111111111111111",
};

//If you want to change the tilemap later on, just call the function change_tile_map() to change it.

void change_tile_map(void)
{
world[0] = "111161511111111811111711111111";
world[1] = "2221615111111642311111711111111";
world[2] = "100000800000000000000000800001";

// and so on...
}



/. Muzzafarath

Edited by - Muzzafarath on 4/5/00 1:43:46 PM

Share this post


Link to post
Share on other sites
of course, the best way is to not have world data hard-coded like that, but as long as ''worlds'' are same dimensions you can do:

world[21] = "212232...

which should work the same way.
again, you should really look into some other method as this is only useful for screwing around in a small world. anything larger than a few screens and you''re likely to have problems.

crazy166

some people think i'm crazy, some people know it

Share this post


Link to post
Share on other sites
dontcha hate it when two people reply at the same time?

crazy166

some people think i'm crazy, some people know it

Share this post


Link to post
Share on other sites
I don''t mind two posts at the same time. Two answers are better than one.

Thanks, that really helped a lot. Why exactly is it a better idea to do it from a file. Will it run out of memory or something? Also, do people generally make a file for each set of tiles?

Thanks again

Share this post


Link to post
Share on other sites
Storing your maps in files is generally a good idea for two reasons. One, it cuts down on your executable size. That''ll help for cacheing and stuff like that(I think). And two, having maps in seperate files means you can change maps without having to re-compile. That also means you can use tools to create your maps. That helps out a bit too.

Jonathan

Share this post


Link to post
Share on other sites


If you need several maps and they are bigger than 100 x 100, then you really need an editor. But it is alot of work to make one. Maybe some can be found for free on the net.


-- There IS something rotten in the state of Denmark --

Share this post


Link to post
Share on other sites
Well, I think I've done my share of messing around with the tiles hard-coded in the program. Could someone give me a little code to get me started in loading a program with the tile info in it. I know I use fopen and so forth, but I'm not sure exactly how to do it.

Thanks

Edited by - Nazrix on 4/10/00 9:42:54 AM

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!