diff options
Diffstat (limited to 'demos/2d/platformer/enemy.gd')
-rw-r--r-- | demos/2d/platformer/enemy.gd | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/demos/2d/platformer/enemy.gd b/demos/2d/platformer/enemy.gd deleted file mode 100644 index 5a4d8af579..0000000000 --- a/demos/2d/platformer/enemy.gd +++ /dev/null @@ -1,83 +0,0 @@ - -extends RigidBody2D - -# Member variables -const STATE_WALKING = 0 -const STATE_DYING = 1 - -var state = STATE_WALKING - -var direction = -1 -var anim = "" - -var rc_left = null -var rc_right = null -var WALK_SPEED = 50 - -var bullet_class = preload("res://bullet.gd") - - -func _die(): - queue_free() - - -func _pre_explode(): - # Stay there - clear_shapes() - set_mode(MODE_STATIC) - get_node("sound").play("explode") - - -func _integrate_forces(s): - var lv = s.get_linear_velocity() - var new_anim = anim - - if (state == STATE_DYING): - new_anim = "explode" - elif (state == STATE_WALKING): - new_anim = "walk" - - var wall_side = 0.0 - - for i in range(s.get_contact_count()): - var cc = s.get_contact_collider_object(i) - var dp = s.get_contact_local_normal(i) - - if (cc): - if (cc extends bullet_class and not cc.disabled): - set_mode(MODE_RIGID) - state = STATE_DYING - #lv = s.get_contact_local_normal(i)*400 - s.set_angular_velocity(sign(dp.x)*33.0) - set_friction(1) - cc.disable() - get_node("sound").play("hit") - break - - if (dp.x > 0.9): - wall_side = 1.0 - elif (dp.x < -0.9): - wall_side = -1.0 - - if (wall_side != 0 and wall_side != direction): - direction = -direction - get_node("sprite").set_scale(Vector2(-direction, 1)) - if (direction < 0 and not rc_left.is_colliding() and rc_right.is_colliding()): - direction = -direction - get_node("sprite").set_scale(Vector2(-direction, 1)) - elif (direction > 0 and not rc_right.is_colliding() and rc_left.is_colliding()): - direction = -direction - get_node("sprite").set_scale(Vector2(-direction, 1)) - - lv.x = direction*WALK_SPEED - - if(anim != new_anim): - anim = new_anim - get_node("anim").play(anim) - - s.set_linear_velocity(lv) - - -func _ready(): - rc_left = get_node("raycast_left") - rc_right = get_node("raycast_right") |