@Owly
Ich glaub nicht, dass der Algorithmus vom 2K/2K3 wirklich Hindernisse berücksichtigt. Da ist wohl eher eine Menge Zufall mit dabei.

Zitat Zitat
In dem Code sehe ich auch keine Überprüfung auf Hindernisse.
Er macht das indirekt über "not moving?".

So ist "approach player" auf dem XP implementiert:

Code:
  def move_type_toward_player
    # Get difference in player coordinates
    sx = @x - $game_player.x
    sy = @y - $game_player.y
    # Get absolute value of difference
    abs_sx = sx > 0 ? sx : -sx
    abs_sy = sy > 0 ? sy : -sy
    # If separated by 20 or more tiles matching up horizontally and vertically
    if sx + sy >= 20
      # Random
      move_random
      return
    end
    # Branch by random numbers 0-5
    case rand(6)
    when 0..3  # Approach player
      move_toward_player
    when 4  # random
      move_random
    when 5  # 1 step forward
      move_forward
    end
  end