X-Git-Url: http://git.purplebirdman.com/star-foxy.git/blobdiff_plain/ea3124d9ad99637a80354553e400511dba817513..HEAD:/player/player.gd diff --git a/player/player.gd b/player/player.gd index b8d2b3b..018f669 100644 --- a/player/player.gd +++ b/player/player.gd @@ -1,11 +1,13 @@ 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 bullet_alterating = 0 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 +38,21 @@ 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"): + if $bullet_timer.time_left == 0: + fire_bullet() + +func fire_bullet(): + var bullet = scene_bullet.instance() + $"..".add_child(bullet) + + bullet_alterating = (bullet_alterating + 1) % 2 + bullet.translation = translation - transform.basis.x * (4 * bullet_alterating - 2) + bullet.rotation = rotation + bullet.direction = -transform.basis.z + + $bullet_timer.start() func _process(delta): # get velocity changes player asks for @@ -44,6 +61,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)