Ergebnis 1 bis 3 von 3

Thema: Sichtfeld-Skript

  1. #1

    Sichtfeld-Skript

    Heyho,
    kann mir jemand ein gutes Sichtfeld-Skript empfehlen? Es muss an sich nur sagen können ob Punkt A von Punkt B aus sichtbar ist. Mit meinen rudimentären Rubby-Künsten ein Kampf das selber zu bauen.
    mhm

  2. #2
    meinst du ein fertiges script für die normale map oder willst du das für was ganz anderes verwenden und brauchst deshalb nur einen algorithmus?

    falls es für die normale map ist, gibt es einige dinge die noch wichtig sind:
    was versperrt denn die sicht? alle tiles die nicht passierbar sind? oder tiles mit einer speziellen terrain id? versperren events auch die sicht?

    ich hab mal eine sichlinie für nen 2d shooter geschrieben:
    Code:
    class Game_Map
      def sichtlinie(start,ziel)
        n = Math.sqrt((start[0]-ziel[0])**2+(start[1]-ziel[1])**2).to_i
        x = start[0]
        y = start[1]
        for i in 0...n
          d = n-i
          x = ((x * (d - 1) + ziel[0]) / d.to_f).round
          y = ((y * (d - 1) + ziel[1]) / d.to_f).round
          return false unless $game_map.passable?(x,y,0)
        end
        return true
      end
    end
    aber ich weiß nicht ob ich dir dieses script wirklich "empfehlen" kann.
    es funzt zwar weitgehenst, aber es gibt bestimmt bessere lösungsmöglichkeiten.
    aufruf: $game_map.sichtlinie([x,y],[x2,y2])
    gibt true oder false zurück

    in dieser version wird die sicht nur durch unpassierbare tiles verpserrt.
    falls das für dich nicht passt, passable? durch terrain_tag oder $game_map durch $player oder nen event ersetzen :/

  3. #3
    Jo, danke!
    Für meine Zwecke ist das Skript absolut ausreichend.
    Ich nehme an, das Math.sqrt die Wurzel zieht, oder? Dann wäre n wohl die Distanz, damit kann ich die Sichtweite ja simpel selber begrenzen.
    Ansonsten ists das was ich gesucht habe, danke ^^

Berechtigungen

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