Archiv verlassen und diese Seite im Standarddesign anzeigen : 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
Shining Advances
04.07.2009, 00:09
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:
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 :/
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 ^^
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.