started tracking progress with git
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 300
|
||||
const JUMP_VELOCITY = -400.0
|
||||
const ANGULAR_ACCELERATION = 7.5;
|
||||
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
var direction: int
|
||||
var World: Node2D
|
||||
var ap: AnimationPlayer
|
||||
var asp: AudioStreamPlayer
|
||||
var jumping: bool = false
|
||||
var lives: int = 3
|
||||
|
||||
var jump_sound = preload("res://audio/jump.wav")
|
||||
var land_sound = preload("res://audio/land.wav")
|
||||
var fall_sound = preload("res://audio/fall.wav")
|
||||
var switch_direction_sound = preload("res://audio/switch_direction.wav")
|
||||
|
||||
func switch_direction():
|
||||
velocity.x *= -1
|
||||
direction *= -1
|
||||
asp.stream = switch_direction_sound
|
||||
asp.play()
|
||||
|
||||
func _ready():
|
||||
ap = $AnimationPlayer;
|
||||
asp = $AudioStreamPlayer;
|
||||
World = get_node("/root/World") ## why did get_world("World") didn't work?
|
||||
direction = World.direction ## maybe should be getting initial direction from level
|
||||
|
||||
func _physics_process(delta):
|
||||
|
||||
if Input.is_action_just_pressed("debug"):
|
||||
switch_direction()
|
||||
#if direction != World.direction:
|
||||
#swap_direction()
|
||||
|
||||
# Add the gravity.
|
||||
self.up_direction = -World.gravity_vector;
|
||||
$CollisionShape2D.skew = lerp( $CollisionShape2D.skew, (.001) * self.velocity.x * sin(World.gravity_vector.angle()) , delta * ANGULAR_ACCELERATION )
|
||||
self.rotation = lerp( self.rotation , -World.gravity_vector.angle() + (.5*PI) , delta * ANGULAR_ACCELERATION ) ;
|
||||
|
||||
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * (sin(World.gravity_vector.angle())) * delta
|
||||
velocity.x += gravity * (cos(World.gravity_vector.angle())) * delta
|
||||
else:
|
||||
# Handle jump.
|
||||
|
||||
if jumping:
|
||||
jumping = false
|
||||
ap.play("land")
|
||||
asp.stream = land_sound
|
||||
asp.play()
|
||||
|
||||
|
||||
if Input.is_action_just_pressed("jump") and is_on_floor():
|
||||
#velocity.x = JUMP_VELOCITY * cos(jump_vector.angle())
|
||||
jumping = true
|
||||
ap.play("jump")
|
||||
asp.stream = jump_sound
|
||||
asp.play()
|
||||
|
||||
velocity.y = JUMP_VELOCITY * sin(World.gravity_vector.angle())
|
||||
|
||||
if direction != 0:
|
||||
velocity.x = direction * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
func _on_fall():
|
||||
asp.stream = fall_sound
|
||||
asp.play()
|
||||
Reference in New Issue
Block a user