My gun shoots to the same way everytime

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By s4mur4i

THE PLAYER SCRİPT

extends KinematicBody2D

var velocity = Vector2()
const SPEED = 30
const GRAVITY = 7
const FLOOR = Vector2(0, -1)
const JUMP_POWER = -150

const BULLET = preload(“res://Bullet.tscn”)

var on_ground = false
var gun_activated = false

func _physics_process(delta):
if Input.is_action_just_pressed(“Release-Unrelease”):
if gun_activated == false:
gun_activated = true
elif gun_activated == true:
gun_activated = false

if Input.is_action_pressed("ui_right"):
	velocity.x = SPEED
	if gun_activated == false:
		$AnimatedSprite.play("Run")
	elif gun_activated == true:
		$AnimatedSprite.play("Grun")
	$AnimatedSprite.flip_h = false
	if sign($Position2D.position.x) == -1:
		$Position2D.position.x *= -1
elif Input.is_action_pressed("ui_left"):
	velocity.x = -SPEED
	if gun_activated == false:
		$AnimatedSprite.play("Run")
	elif gun_activated == true:
		$AnimatedSprite.play("Grun")
	$AnimatedSprite.flip_h = true
	if sign($Position2D.position.x) == 1:
		$Position2D.position.x *= -1
else:
	velocity.x = 0
	if on_ground == true:
		if gun_activated == false:
			$AnimatedSprite.play("idle")
		elif gun_activated == true:
			$AnimatedSprite.play("Gunidle")
		
if Input.is_action_pressed("ui_up") || Input.is_action_pressed("Jump"):
	if on_ground == true:
		velocity.y = JUMP_POWER
		on_ground = false
		
if Input.is_action_just_pressed("ui_focus_next"):
		var bullet = BULLET.instance()
		if sign($Position2D.position.x) == 1:
			bullet.set_bullet_direction(1)
		else:
			bullet.set_bullet_direction(-1)
		get_parent().add_child(bullet)
		bullet.position = $Position2D.global_position
		
velocity.y += GRAVITY
	
if is_on_floor():
	on_ground = true
else:
	on_ground = false
	if velocity.y < 0:
		if gun_activated == false:
			$AnimatedSprite.play("Jump")
		elif gun_activated == true:
			$AnimatedSprite.play("Gjump")
	else:
		if gun_activated == false:
			$AnimatedSprite.play("Fall")
		elif gun_activated == true:
			$AnimatedSprite.play("Gfall")

velocity = move_and_slide(velocity, FLOOR)

THE BULLET SCRİPT

extends Area2D

const SPEED = 300
var velocity = Vector2()
var direction = 1

func _ready():
pass

func set_bullet_direction(dir):
direction = dir
if dir == -1:
$AnimatedSprite.flip_h = true

func _physics_process(delta):
velocity.x = SPEED * delta * direction
translate(velocity)
$AnimatedSprite.play(“default”)

func _on_VisibilityNotifier2D_screen_exited():
queue_free()

if sign($Position2D.position.x) == 1:

is $Position2D.position.x always likely to be a positive number?

SteveSmith | 2022-02-15 11:05