Die Kollisionsabfrage läuft derzeit auf Basis dieses Scriptes:
Code:
def pathing_test(real_x, real_y)
    block = Color.new(0,0,0,255) #Farbe die Blockt = Schwarz
    tile = RPG::Cache.tileset("PathingMap-"+@tileset_name) #Bilddatei der Pathing Map
    int_x = real_x / 32
    int_x -= 1 if real_x % 32 == 0
    int_y = real_y / 32
    int_y -= 1 if real_y % 32 == 0
    add_x = real_x % 32
    add_y = real_y % 32
    for i in [2, 1, 0]
      #Durchlauf pro Layer
      tile_id = data[int_x, int_y, i] - 384
      next if tile_id < 0
      ry = tile_id / 8
      rx = tile_id % 8
      #Passierbarkeits Check
      return false if tile.get_pixel(rx*32+add_x, ry*32+add_y) == block
    end
    return true
  end
"tile" und "block" können auch als private Variablen bei der initialisierung der Map gespeichert werden, ich habe sie nur hier eingefügt um den Code leichter verständlich zu machen.

Was die Tabellen angeht so wollte ich für jede Map die genauen Passierbarkeiten jedes Pixels speichern.
Eine 20x15 Tiles große Karte ist 640x480 Pixel groß (32 Pixel pro Tile) und damit wäre auch die Tabelle 640 x 480 Einheiten groß und würde jedes Pixel mit einem Wert zwischen 1 und 2 versehen.
Dadurch müsste der Computer weder die Bilddatei "Tile" laden noch irgendwelche Rechenoperationen ausführen. Ich könnte direkt über die zu prüfenden Koordinaten in der Tabelle nachschlagen ob der betreffende Punkt begehbar ist oder nicht.