diff options
Diffstat (limited to 'demos/2d/fog_of_war/fog.gd')
-rw-r--r-- | demos/2d/fog_of_war/fog.gd | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/demos/2d/fog_of_war/fog.gd b/demos/2d/fog_of_war/fog.gd deleted file mode 100644 index 3ac8df0e17..0000000000 --- a/demos/2d/fog_of_war/fog.gd +++ /dev/null @@ -1,78 +0,0 @@ - -extends TileMap - -# Member variables - -# Boundaries for the fog rectangle -var x_min = -20 # Left start tile -var x_max = 20 # Right end tile -var y_min = -20 # Top start tile -var y_max = 20 # Bottom end tile - -var position # Player's position - -# Iteration variables -var x -var y - -# Variables to check if the player moved -var x_old -var y_old - -# Array to build up the visible area like a square. -# First value determines the width/height of the tip. -# Here it would be 2*2 + 1 = 5 tiles wide/high. -# Second value determines the total squares size. -# Here it would be 5*2 + 1 = 10 tiles wide/high. -var l = range(2, 5) - - -# Process that runs in realtime -func _fixed_process(delta): - position = get_node("../troll").get_pos() - - # Calculate the corresponding tile - # from the players position - x = int(position.x/get_cell_size().x) - # Switching from positive to negative tile positions - # causes problems because of rounding problems - if position.x < 0: - x -= 1 # Correct negative values - - y = int(position.y/get_cell_size().y) - if (position.y < 0): - y -= 1 - - # Check if the player moved one tile further - if ((x_old != x) or (y_old != y)): - # Create the transparent part (visited area) - var end = l.size() - 1 - var start = 0 - for steps in range(l.size()): - for m in range(x - l[end] - 1, x + l[end] + 2): - for n in range(y - l[start] - 1, y + l[start] + 2): - if (get_cell(m, n) != 0): - set_cell(m, n, 1, 0, 0) - end -= 1 - start += 1 - - # Create the actual and active visible part - var end = l.size() - 1 - var start = 0 - for steps in range(l.size()): - for m in range(x - l[end], x + l[end] + 1): - for n in range(y - l[start], y + l[start] + 1): - set_cell(m, n, -1) - end -= 1 - start += 1 - - x_old = x - y_old = y - - -func _ready(): - # Create a square filled with the 100% opaque fog - for x in range(x_min, x_max): - for y in range(y_min, y_max): - set_cell(x, y, 0, 0, 0) - set_fixed_process(true) |