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.gd117
1 files changed, 53 insertions, 64 deletions
diff --git a/demos/2d/isometric_light/cubio.gd b/demos/2d/isometric_light/cubio.gd
index 30c766936c..508cd3728c 100644
--- a/demos/2d/isometric_light/cubio.gd
+++ b/demos/2d/isometric_light/cubio.gd
@@ -1,96 +1,85 @@
extends KinematicBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# 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
+const ACCEL = 5.0
+const VSCALE = 0.5
+const SHOOT_INTERVAL = 0.3
+
+var speed = Vector2()
+var current_anim = ""
+var current_mirror = false
-var speed=Vector2()
-var current_anim=""
-var current_mirror=false
+var shoot_countdown = 0
-var shoot_countdown=0
-func _input(ev):
- if (ev.type==InputEvent.MOUSE_BUTTON and ev.button_index==1 and ev.pressed and shoot_countdown<=0):
- var pos = get_canvas_transform().affine_inverse() * ev.pos
- var dir = (pos-get_global_pos()).normalized()
+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.scn").instance()
- bullet.advance_dir=dir
- bullet.set_pos( get_global_pos() + dir * 60 )
+ bullet.advance_dir = dir
+ bullet.set_pos(get_global_pos() + dir*60)
get_parent().add_child(bullet)
- shoot_countdown=SHOOT_INTERVAL
-
-
-
+ shoot_countdown = SHOOT_INTERVAL
+
func _fixed_process(delta):
-
- shoot_countdown-=delta
+ shoot_countdown -= delta
var dir = Vector2()
if (Input.is_action_pressed("up")):
- dir+=Vector2(0,-1)
+ dir += Vector2(0, -1)
if (Input.is_action_pressed("down")):
- dir+=Vector2(0,1)
+ dir += Vector2(0, 1)
if (Input.is_action_pressed("left")):
- dir+=Vector2(-1,0)
+ 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)
+ 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)
+ motion = n.slide(motion)
move(motion)
- var next_anim=""
- var next_mirror=false
+ 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)
+ 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"
+ 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):
+ 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
-
+ current_anim = next_anim
+ current_mirror = next_mirror
func _ready():
- # Initialization here
set_fixed_process(true)
set_process_input(true)
- pass
-
-