RoofTop Ninja Programming (BETA)
#PLAYER CODE
extends KinematicBody2D
signal grounded_updated(is_grounded)
var score : int = 0
var is_attacking = false
var speed : int = 600
var jumpforce : int = 800
var Gravity : int = 1500
var is_grounded
var vel : Vector2 = Vector2()
var facing = 1
onready var sprite : AnimatedSprite = get_node("sprite")
func _process(delta):
vel.x = 0
var was_grounded = is_grounded
is_grounded = is_on_floor()
if is_on_floor():
Gravity = 1500
if was_grounded == null || is_grounded != was_grounded:
emit_signal("grounded_updated", is_grounded)
if Input.is_key_pressed(KEY_SHIFT):
speed += 0
if Input.is_action_pressed("move_left"):
is_attacking = false
sprite.flip_h = true
vel.x -= speed
facing = -1
if is_on_floor():
$sprite.play("RUN")
if Input.is_action_pressed("move_right"):
is_attacking = false
vel.x += speed
sprite.flip_h = false
facing = 1
if is_on_floor():
$sprite.play("RUN")
if Input.is_action_just_pressed("attack_sword"):
if is_on_floor():
if vel.x == 0:
if facing == 1:
move_local_x(+30)
$sprite.play("ATTACK")
is_attacking = true
if facing == -1:
move_local_x(-30)
$sprite.play("ATTACK")
is_attacking = true
else:
pass
else:
pass
else:
pass
if vel.x == 0 and is_on_floor():
if is_attacking == false:
$sprite.play("IDLE")
else:
pass
vel = move_and_slide(vel, Vector2.UP)
vel.y += Gravity*delta
if Input.is_action_just_pressed("jump") and is_on_floor():
is_attacking = false
vel.y -= jumpforce
if is_on_floor() == false:
$sprite.play("JUMP")
if Input.is_action_pressed("glide_a"):
if is_on_floor() == false:
if vel.y > 0:
Gravity = 200
speed = 700
$sprite.play("GLIDE")
else:
pass
else:
pass
if Input.is_action_just_released("glide_a"):
Gravity = 1500
speed = 600
#if vel.x < 0:
# sprite.flip_h = true
#elif vel.x > 0:
# sprite.flip_h = false
func _on_sprite_animation_finished():
if $sprite.animation == "ATTACK":
is_attacking = false
if facing == 1:
move_local_x(-30)
if facing == -1:
move_local_x(30)
Comments
Post a Comment