diff --git a/2d/platformer/player.gd b/2d/platformer/player.gd index 5919e725..3d6b5f32 100644 --- a/2d/platformer/player.gd +++ b/2d/platformer/player.gd @@ -3,7 +3,6 @@ extends KinematicBody2D const GRAVITY_VEC = Vector2(0, 900) const FLOOR_NORMAL = Vector2(0, -1) const SLOPE_SLIDE_STOP = 25.0 -const MIN_ONAIR_TIME = 0.1 const WALK_SPEED = 250 # pixels/sec const JUMP_SPEED = 480 const SIDING_CHANGE_SPEED = 10 @@ -11,41 +10,35 @@ const BULLET_VELOCITY = 1000 const SHOOT_TIME_SHOW_WEAPON = 0.2 var linear_vel = Vector2() -var onair_time = 0 # var on_floor = false -var shoot_time=99999 #time since last shot +var shoot_time = 99999 # time since last shot -var anim="" +var anim = "" -#cache the sprite here for fast access (we will set scale to flip it often) +# cache the sprite here for fast access (we will set scale to flip it often) onready var sprite = $sprite func _physics_process(delta): - #increment counters - - onair_time += delta + # Increment counters shoot_time += delta ### MOVEMENT ### - # Apply Gravity + # Apply gravity linear_vel += delta * GRAVITY_VEC - # Move and Slide + # Move and slide linear_vel = move_and_slide(linear_vel, FLOOR_NORMAL, SLOPE_SLIDE_STOP) - # Detect Floor - if is_on_floor(): - onair_time = 0 - - on_floor = onair_time < MIN_ONAIR_TIME + # Detect if we are on floor - only works if called *after* move_and_slide + var on_floor = is_on_floor() ### CONTROL ### - # Horizontal Movement + # Horizontal movement var target_speed = 0 if Input.is_action_pressed("move_left"): - target_speed += -1 + target_speed -= 1 if Input.is_action_pressed("move_right"): - target_speed += 1 + target_speed += 1 target_speed *= WALK_SPEED linear_vel.x = lerp(linear_vel.x, target_speed, 0.1) @@ -58,10 +51,10 @@ func _physics_process(delta): # Shooting if Input.is_action_just_pressed("shoot"): var bullet = preload("res://bullet.tscn").instance() - bullet.position = $sprite/bullet_shoot.global_position #use node for shoot position + bullet.position = $sprite/bullet_shoot.global_position # use node for shoot position bullet.linear_velocity = Vector2(sprite.scale.x * BULLET_VELOCITY, 0) bullet.add_collision_exception_with(self) # don't want player to collide with bullet - get_parent().add_child(bullet) #don't want bullet to move with me, so add it as child of parent + get_parent().add_child(bullet) # don't want bullet to move with me, so add it as child of parent $sound_shoot.play() shoot_time = 0