Is it possible to create isometric games In GD? And if it is, how would I go about the tiles and making them align perfectly, as well as z position.
Isometric games don’t really usually have a Z axis, so if you had to stack tiles you would probably have to figure out some way to do that (I dunno how to do that, sorry).
You can place the isometric sprites by locking to a grid with a width of half the sprites base width, and a height of half the sprites base height (by base I mean the little diamond shaped isometric tile the building or whatever it is sits on), also I think you’ll probably want the sprites origin (or whatever GD uses to snap the sprites on the room) to be at the far left of the image and just at the top of it’s base.
You can also probably order the sprites z-depth based on their Y position so that the sprites in the back don’t stick over the sprites in the front.
I made an image to illustrate it a little bit, the green thing should be where you place the origin, the red thing is the base(64x32 px).
To snap this using a grid you would set the grid to 32x16 px.
Hope this helps .
Thanks for the info, so just to see if I understand, lets say I want to make my character be able to move behind the grey cube on top of the base I would have to make a separate layer for that grey cube if lets say the red base was part of the main map?
Using layers would be really difficult in this particular instance, you should probably use something called Z-order, which basically tells the game in which order the sprites will be placed, the sprites with a lower Z-order will appear behind the sprites with a higher Z-order.
You would change the Z order based on an objects Y position, to make the objects that are in the back (with lower Y value) appear behind the objects that are in front of them (with a higher Y value).
For moving things like a player you would want to do this at least every time they move (that way your player would be able to stand behind it, then walk out in front).
Basically the action would be “Do =player.Y() to z-order of player” , if that doesn’t work, it would probably be “Do =-player.Y() to z-order of player”, that will change the Z-order so that the object in front appear in front of things that are behind them. (we are using the “Change Z order of an object” action)
You should probably run that action whenever an object gets placed and whenever its position changes.
As for floor tiles, you may want to put those on a whole separate layer possibly.
I don’t know that I’m explaining things very well though, XD.
Thanks, I understand you are a good teacher