Vielen vielen Dank, werde ich so benutzen, aber
"#tileset tiles beginnen mit 384"
und "#achtung nicht 1! dadurch würdest du das erste tile"
treffen nichtmehr zu wenn man das erste Tile durch die Subtraktion von 383 auf 1 setzt und nicht auf 0. Ist natürlich Geschmackssache.
Außerdem hatte ich das Tile ursprünglich absichtlich überzeichnet , nur war meine Begehbar-Farbe nicht 255,255,255,255 sondern 0,0,0,0 sprich transparent. Das Tile mit transparenz zu überschreiben hätte keinen Effekt.
Edit: es funktioniert nicht, ich bekomme für jedes Tile "true" und außerdem einen Error für maximale x-, y-Werte.
Edit2: Ich habe es mit folgendem Script zum laufen bringen können:
def test(real_x,real_y)
block = Color.new(0,0,0,255)
tile = RPG::Cache.tileset("PathingMap-"+@tileset_name)
int_x = real_x / 32
int_x -= 1 if real_x % 32 == 0 # die Koordinaten (32/32) gehören noch zum ersten Tile (0/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]
tile_id = data[int_x, int_y, i] - 384
next if tile_id < 0
ry = tile_id / 8
rx = tile_id % 8
return false if tile.get_pixel(rx*32+add_x, ry*32+add_y) == block
end
return true
end
die Fett geschriebenen unterstrichenen Stellen habe ich verändert.
Das Problem mit den Maximal Werten ist, dass das letzte Tile die max-X-Wert 640 und max-Y-Wert 480 was mit dem alten Script ein Tile ergeben würde welches außerhalb der Karte liegt.
Der Fehler in der Pixel-Farben Abfrage ist ziemlich offensichtlich.