Quote Originally Posted by Proph3t View Post
1. How do you implement zoom in an Isometric world? Like in Age Of Empires, you can zoom in and out. I have searched the NET, but found nothing.
To get the best results with zoom you should create different graphics for different zoom levels (Transport Tycoon did this) or you can just scale the tiles, in other words to zoom in 2x set the tile size to 256x128 and draw all tiles with 2X scaling.

Quote Originally Posted by Proph3t View Post
2. I also created a map editor, but I need a little help with placing tiles where the user clicks. How will I determine the X and Y coordinates where the user clicked? And also how do I check if the user cliked on a tile that is inside map boundaries? I have gone through the tutorial given on DelphiGameDev, but to be honest, it lacks explanation...
Theese are my isometric screen to world and world to screen functions:

Code:
const
  TileWidth  = 64;
  TileHeight = 32;

  MapWidth  = 16;
  MapHeight = 16;

  MapOffsetX = 400;
  MapOffsetY = 100;

function WorldToScreen(const Value: TVector2f): TVector2f;
begin
  Result.X:= MapOffsetX + (Value.X - Value.Y) * (TileWidth  div 2);
  Result.Y:= MapOffsetY + (Value.X + Value.Y) * (TileHeight div 2);
end;

function ScreenToWorld(const Value: TVector2f): TVector2f;
var X,Y: Single;
begin
  X:= (Value.X - MapOffsetX) / (TileWidth  div 2);
  Y:= (Value.Y - MapOffsetY) / (TileHeight div 2);

  Result.X:= (X + Y) / 2;
  Result.Y:= (Y - X) / 2;
end;
And to check if its inside the map just check the returned X and Y coordinates:

Code:
  Position:= ScreenToWorld(Input.Mouse.X, Input.Mouse.Y);

  X:= Trunc(Position.X);
  Y:= Trunc(Position.Y);


  if(X >= 0) and (X < MapWidth) and (Y>=0) and (Y < MapHeight) then
  begin
    MapData[0, Y, X]:= Tile;
  end;

I have a working sample of this in Phoenix (Addons\01_Sprites\05_Isometric):

http://phoenixlib.net/wiki/doku.php?id=start