X-Git-Url: http://git.purplebirdman.com/star-foxy.git/blobdiff_plain/ea3124d9ad99637a80354553e400511dba817513..c25901f552013905d08827f2ff004244a57f8d4f:/player/player.gd?ds=sidebyside diff --git a/player/player.gd b/player/player.gd index b8d2b3b..2b608dc 100644 --- a/player/player.gd +++ b/player/player.gd @@ -1,11 +1,12 @@ extends KinematicBody -const SPEED_FORWARD = 2 +const SPEED_FORWARD = 20 +const SPEED_MAX = 20 const SPEED_TURN = 120 const SPEED_AIM = PI / 2 -const FRICTION = 0.95 var velocity = Vector3() +var scene_bullet = preload("res://player/bullet.tscn") # Called when the node enters the scene tree for the first time. func _ready(): @@ -36,6 +37,17 @@ func get_player_input(delta): elif Input.is_action_pressed("player_aim_right"): rotate(Vector3.UP, -SPEED_AIM * delta) + # offense + if Input.is_action_pressed("player_fire"): + print("firing!") + fire_bullet() + +func fire_bullet(): + var bullet = scene_bullet.instance() + $"..".add_child(bullet) + bullet.translation = translation - transform.basis.x * 2 + bullet.rotation = rotation + bullet.direction = -transform.basis.z func _process(delta): # get velocity changes player asks for @@ -44,6 +56,10 @@ func _process(delta): # move foward according to the camera's POV var vec_forward = transform.basis.z velocity += SPEED_FORWARD * -vec_forward * delta + + # air friction + var friction = SPEED_MAX / velocity.length() + velocity *= friction func _physics_process(_delta): velocity = move_and_slide(velocity, Vector3.UP)