summaryrefslogtreecommitdiff
path: root/demos/2d/fog_of_war/fog.gd
diff options
context:
space:
mode:
Diffstat (limited to 'demos/2d/fog_of_war/fog.gd')
-rw-r--r--demos/2d/fog_of_war/fog.gd78
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)