1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- extends KinematicBody2D
- # This is a simple collision demo showing how
- # the kinematic cotroller works.
- # move() will allow to move the node, and will
- # always move it to a non-colliding spot,
- # as long as it starts from a non-colliding spot too.
- #pixels / second
- const MOTION_SPEED=160
- func _fixed_process(delta):
- var motion = Vector2()
-
- if (Input.is_action_pressed("move_up")):
- motion+=Vector2(0,-1)
- if (Input.is_action_pressed("move_bottom")):
- motion+=Vector2(0,1)
- if (Input.is_action_pressed("move_left")):
- motion+=Vector2(-1,0)
- if (Input.is_action_pressed("move_right")):
- motion+=Vector2(1,0)
-
- motion = motion.normalized() * MOTION_SPEED * delta
- motion = move(motion)
-
- #make character slide nicely through the world
- var slide_attempts = 4
- while(is_colliding() and slide_attempts>0):
- motion = get_collision_normal().slide(motion)
- motion=move(motion)
- slide_attempts-=1
-
- func _ready():
- # Initalization here
- set_fixed_process(true)
- pass
|