New answers tagged

1

This is how the original Civ 1 does it: It separates the world into rectangles as you do, each rectangle's width and height is the same as the maximum width and height of a tile. When you click on the screen, it gets the relative position if the mouse from the current rectangle's top-left corner and gets the color from the following image with thise ...


1

Assuming a 3D object is projected with isometric projection, it becomes a bit smaller in screen coordinates, no? Maybe not quite the way you think, if you're using a true isometric projection. "Isometric" comes from Greek terms for "equal measure," referring to the fact that the six axes you describe are all equally foreshortened. Eg. If I took six ...


1

I believe you can analyze the distance the user drew on screen, and the distance between the camera and the platform, as well as the FOV of the camera. Using this info, you could use some geometry to figure out the length relative to the platform the user drew on. I made this graphic below- is this what you're asking?


2

There are several options: Have a non-scrolling background image which is more attractive than just pure black. This might make the game appear a bit more abstract. (example from Disgaea D2) Add a decorative border which looks as if the game takes place on a tabletop or similar (Example from Rings of Power) Design your maps with a non-reachable border ...


0

There are multiple ways to solve this issue. The first way to solve this would be to use procedural generation and simply create more terrain on the fly when the player reaches the edge of the map. Depending on what you currently have, this could be pretty hard to achieve. The second would be to add walls to the map, so the player can't reach the edge of ...


1

I have it :) var blockHeight = 15; var blockWidth = 30; var zoom = 2; for (var x = 0; x < 10; x++) { for (var y = 0; y < 10; y++) { var screenX = Math.floor((x * (blockWidth * zoom - zoom * 2) / 2) + (y * (blockWidth * zoom - zoom * 2) / 2)); var screenY = Math.floor((y * (blockHeight * zoom - zoom * 1) / 2) - (x * (blockHeight * zoom - ...



Top 50 recent answers are included