summaryrefslogtreecommitdiff
path: root/demos/2d/isometric_light/cubio.gd
diff options
context:
space:
mode:
Diffstat (limited to 'demos/2d/isometric_light/cubio.gd')
-rw-r--r--demos/2d/isometric_light/cubio.gd85
1 files changed, 0 insertions, 85 deletions
diff --git a/demos/2d/isometric_light/cubio.gd b/demos/2d/isometric_light/cubio.gd
deleted file mode 100644
index a26d5ae6fb..0000000000
--- a/demos/2d/isometric_light/cubio.gd
+++ /dev/null
@@ -1,85 +0,0 @@
-
-extends KinematicBody2D
-
-# Member variables
-const MAX_SPEED = 300.0
-const IDLE_SPEED = 10.0
-const ACCEL = 5.0
-const VSCALE = 0.5
-const SHOOT_INTERVAL = 0.3
-
-var speed = Vector2()
-var current_anim = ""
-var current_mirror = false
-
-var shoot_countdown = 0
-
-
-func _input(event):
- if (event.type == InputEvent.MOUSE_BUTTON and event.button_index == 1 and event.pressed and shoot_countdown <= 0):
- var pos = get_canvas_transform().affine_inverse()*event.pos
- var dir = (pos - get_global_pos()).normalized()
- var bullet = preload("res://shoot.tscn").instance()
- bullet.advance_dir = dir
- bullet.set_pos(get_global_pos() + dir*60)
- get_parent().add_child(bullet)
- shoot_countdown = SHOOT_INTERVAL
-
-
-func _fixed_process(delta):
- shoot_countdown -= delta
- var dir = Vector2()
- if (Input.is_action_pressed("up")):
- dir += Vector2(0, -1)
- if (Input.is_action_pressed("down")):
- dir += Vector2(0, 1)
- if (Input.is_action_pressed("left")):
- dir += Vector2(-1, 0)
- if (Input.is_action_pressed("right")):
- dir += Vector2(1, 0)
-
- if (dir != Vector2()):
- dir = dir.normalized()
- speed = speed.linear_interpolate(dir*MAX_SPEED, delta*ACCEL)
- var motion = speed*delta
- motion.y *= VSCALE
- motion = move(motion)
-
- if (is_colliding()):
- var n = get_collision_normal()
- motion = n.slide(motion)
- move(motion)
-
- var next_anim = ""
- var next_mirror = false
-
- if (dir == Vector2() and speed.length() < IDLE_SPEED):
- next_anim = "idle"
- next_mirror = false
- elif (speed.length() > IDLE_SPEED*0.1):
- var angle = atan2(abs(speed.x), speed.y)
-
- next_mirror = speed.x > 0
- if (angle < PI/8):
- next_anim = "bottom"
- next_mirror = false
- elif (angle < PI/4 + PI/8):
- next_anim = "bottom_left"
- elif (angle < PI*2/4 + PI/8):
- next_anim = "left"
- elif (angle < PI*3/4 + PI/8):
- next_anim = "top_left"
- else:
- next_anim = "top"
- next_mirror = false
-
- if (next_anim != current_anim or next_mirror != current_mirror):
- get_node("frames").set_flip_h(next_mirror)
- get_node("anim").play(next_anim)
- current_anim = next_anim
- current_mirror = next_mirror
-
-
-func _ready():
- set_fixed_process(true)
- set_process_input(true)