Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Makroman |
extends KinematicBody2D
const SPEED = 100
const GRAVITY = 10
const JUMP_POWER = -250
const FLOOR = Vector2(0, -1)
const ARROW = preload(“res://world/Arrow.tscn”)
var velocity = Vector2()
var is_attacking = false
var on_ground = false
func _physics_process(delta):
if Input.is_action_pressed("ui_right"):
if is_attacking == false:
velocity.x = SPEED
$AnimatedSprite.play("Run")
$AnimatedSprite.flip_h = false
if sign($Position2D.position.x) == -1:
$Position2D.position.x *= -1
elif Input.is_action_pressed("ui_left"):
if is_attacking == false:
velocity.x = -SPEED
$AnimatedSprite.play("Run")
$AnimatedSprite.flip_h = true
if sign($Position2D.position.x) == 1:
$Position2D.position.x *= -1
else:
velocity.x = 0
if on_ground == true && is_attacking == false:
$AnimatedSprite.play("Idle")
if Input.is_action_pressed("ui_up"):
if is_attacking == false:
if on_ground == true:
velocity.y = JUMP_POWER
on_ground = false
if Input.is_action_just_pressed("ui_accept") && is_attacking == false:
if is_on_floor():
velocity.x = 0
is_attacking = true
$AnimatedSprite.play("Attack")
var arrow = ARROW.instance()
if sign($Position2D.position.x) == 1:
arrow.set_arrow_direction(1)
else:
arrow.set_arrow_direction(-1)
get_parent().add_child(arrow)
arrow.position = $Position2D.global_position
velocity.y += GRAVITY
if is_on_floor():
if on_ground == false:
is_attacking == false
on_ground = true
else:
if is_attacking == false:
on_ground = false
if velocity.y < 0:
$AnimatedSprite.play("Jump")
velocity = move_and_slide(velocity, FLOOR)