Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Fizzleburn |
So, I am making a Galaga clone, and am trying to figure out the system for making the player shoot bullets.
Player scene tree:
-Area2d(named Player)
- CollisionShape2D
- Sprite
- Bullet(scene)
Bullet scene tree:
- Area2D(named Bullet)
- Sprite
- CollisionShape2D
- VisibilityNotifier2D
Here is my code for the player:
extends Area2D
signal onBulletSpawn
var Bullet = preload("res://Bullet.tscn")
export (NodePath) var target_node_nodepath = null
var target_node
export var playerSpeed = 400
var screen_size
func _ready():
screen_size = get_viewport_rect().size
func _process(delta):
var Playervelocity = Vector2()
if Input.is_action_pressed("ui_right"):
Playervelocity.x += 1
if Input.is_action_pressed("ui_left"):
Playervelocity.x -= 1
if Input.is_action_just_pressed("ui_select"):
var bullet = Bullet.instance()
add_child(bullet)
bullet.position = position
position += Playervelocity * delta * playerSpeed
position.x = clamp(position.x, 0, screen_size.x)
Here is my code for the bullet:
extends Area2D
export var bulletSpeed = -10000
func _on_VisibilityNotifier2D_screen_exited():
queue_free()
func _process(delta):
position += Vector2(0.0, bulletSpeed * delta)
So this all works fine, but when when I shoot a bullet, then move my character, the bullet moves with the character… Any suggestions on how to fix this?