diff options
Diffstat (limited to 'demos/2d/fog_of_war')
-rw-r--r-- | demos/2d/fog_of_war/fog.gd | 92 | ||||
-rw-r--r-- | demos/2d/fog_of_war/fog.scn | bin | 3714 -> 4159 bytes | |||
-rw-r--r-- | demos/2d/fog_of_war/tile_edit.scn | bin | 1443 -> 1570 bytes | |||
-rw-r--r-- | demos/2d/fog_of_war/troll.gd | 33 | ||||
-rw-r--r-- | demos/2d/fog_of_war/troll.scn | bin | 1839 -> 1979 bytes |
5 files changed, 56 insertions, 69 deletions
diff --git a/demos/2d/fog_of_war/fog.gd b/demos/2d/fog_of_war/fog.gd index 9da5680e4d..3ac8df0e17 100644 --- a/demos/2d/fog_of_war/fog.gd +++ b/demos/2d/fog_of_war/fog.gd @@ -1,86 +1,78 @@ extends TileMap -# member variables here, example: -# var a=2 -# var b="textvar" +# Member variables -# boundarys 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 +# 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 # players position +var position # Player's position -# iteration variables +# Iteration variables var x var y -# variable to check if player moved +# 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) +# 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 + +# Process that runs in realtime func _fixed_process(delta): position = get_node("../troll").get_pos() - # calculate the corresponding tile + # Calculate the corresponding tile # from the players position x = int(position.x/get_cell_size().x) - # switching from positive to negative tile positions + # Switching from positive to negative tile positions # causes problems because of rounding problems if position.x < 0: - x -= 1 # correct negative values + x -= 1 # Correct negative values y = int(position.y/get_cell_size().y) - if position.y < 0: + 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 + + # 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) + 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 + + # 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) + 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 - - pass + func _ready(): - # Initalization here - - # 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) + # 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) - pass - - diff --git a/demos/2d/fog_of_war/fog.scn b/demos/2d/fog_of_war/fog.scn Binary files differindex 4987f1ead5..cf19601567 100644 --- a/demos/2d/fog_of_war/fog.scn +++ b/demos/2d/fog_of_war/fog.scn diff --git a/demos/2d/fog_of_war/tile_edit.scn b/demos/2d/fog_of_war/tile_edit.scn Binary files differindex aaca19d370..3eddf38e48 100644 --- a/demos/2d/fog_of_war/tile_edit.scn +++ b/demos/2d/fog_of_war/tile_edit.scn diff --git a/demos/2d/fog_of_war/troll.gd b/demos/2d/fog_of_war/troll.gd index d118d3a2ba..6f40072e84 100644 --- a/demos/2d/fog_of_war/troll.gd +++ b/demos/2d/fog_of_war/troll.gd @@ -2,42 +2,37 @@ extends KinematicBody2D # This is a simple collision demo showing how -# the kinematic cotroller works. +# the kinematic controller works. # move() will allow to move the node, and will -# always move it to a non-colliding spot, +# always move it to a non-colliding spot, # as long as it starts from a non-colliding spot too. +# Member variables +const MOTION_SPEED = 160 # Pixels/second -#pixels / second -const MOTION_SPEED=160 func _fixed_process(delta): - var motion = Vector2() if (Input.is_action_pressed("move_up")): - motion+=Vector2(0,-1) + motion += Vector2(0, -1) if (Input.is_action_pressed("move_bottom")): - motion+=Vector2(0,1) + motion += Vector2(0, 1) if (Input.is_action_pressed("move_left")): - motion+=Vector2(-1,0) + motion += Vector2(-1, 0) if (Input.is_action_pressed("move_right")): - motion+=Vector2(1,0) + motion += Vector2(1, 0) - motion = motion.normalized() * MOTION_SPEED * delta + motion = motion.normalized()*MOTION_SPEED*delta motion = move(motion) - #make character slide nicely through the world + # Make character slide nicely through the world var slide_attempts = 4 - while(is_colliding() and slide_attempts>0): + while(is_colliding() and slide_attempts > 0): motion = get_collision_normal().slide(motion) - motion=move(motion) - slide_attempts-=1 - + motion = move(motion) + slide_attempts -= 1 + func _ready(): - # Initalization here set_fixed_process(true) - pass - - diff --git a/demos/2d/fog_of_war/troll.scn b/demos/2d/fog_of_war/troll.scn Binary files differindex f5d87c3631..ab9af17221 100644 --- a/demos/2d/fog_of_war/troll.scn +++ b/demos/2d/fog_of_war/troll.scn |