Ergebnis 1 bis 6 von 6

Thema: Pixelmovement Terrain-Kollisionsabfrage

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5

    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:
    Code:
    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.

    Geändert von Cornix (14.06.2010 um 23:10 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •