added paralax, etc
This commit is contained in:
34 files changed
+870
-29
No files matched your search
+6
-1
@@ -1,10 +1,15 @@
|
||||
class_name Bullet extends Area2D
|
||||
@onready var sprite_2d: Sprite2D = $Sprite2D
|
||||
|
||||
var speed: float = 700
|
||||
var speed: float = 500
|
||||
signal bulletDamageSignal(target: Node2D, bullet: Node2D)
|
||||
|
||||
func setSpeed(val: float):
|
||||
speed = val
|
||||
if val > 0:
|
||||
sprite_2d.flip_h = true
|
||||
else:
|
||||
sprite_2d.flip_h = false
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
position += transform.x * speed * delta
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class_name Coin extends Area2D
|
||||
|
||||
signal coin_collected(coin: Coin)
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if body is Player:
|
||||
coin_collected.emit(self)
|
||||
@@ -0,0 +1 @@
|
||||
uid://cervcsnoq87m5
|
||||
@@ -2,16 +2,6 @@ extends Node2D
|
||||
|
||||
signal playerDamage
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void:
|
||||
if body.name == "world-boundary":
|
||||
return
|
||||
@@ -20,6 +10,8 @@ func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void:
|
||||
body.health -= 1
|
||||
print(body.health)
|
||||
return
|
||||
if body is Player:
|
||||
return
|
||||
print("GC sees trigger " + effect + " on " + body.name)
|
||||
body.queue_free()
|
||||
|
||||
@@ -27,3 +19,6 @@ func bulletDamage(target: Node2D, bullet: Node2D):
|
||||
print("game controller sees hit")
|
||||
target.queue_free()
|
||||
bullet.visible = false
|
||||
|
||||
func coin_collected(coin: Coin):
|
||||
coin.queue_free()
|
||||
@@ -23,6 +23,7 @@ var state: State = State.IDLE
|
||||
var facing: FaceDirection = FaceDirection.RIGHT
|
||||
var pushTarget: Object
|
||||
var pushEnabled: bool = false
|
||||
var score = 0
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
handle_input(delta)
|
||||
|
||||
@@ -3,6 +3,7 @@ class_name SceneManager extends Node2D
|
||||
const BulletScn = preload("res://scenes/bullet.tscn")
|
||||
@onready var game: Node2D = $".."
|
||||
@onready var triggers: Node2D = $"../triggers"
|
||||
@onready var coins: Node = $"../coins"
|
||||
|
||||
var bullets: Array[Bullet] = []
|
||||
const MAX_BULLETS = 10
|
||||
@@ -13,6 +14,10 @@ func _ready() -> void:
|
||||
for obj in triggers.get_children():
|
||||
if obj is Trigger:
|
||||
obj.areaTriggerSignal.connect(game._on_area_2d_area_trigger_signal)
|
||||
if coins:
|
||||
for obj in coins.get_children():
|
||||
if obj is Coin:
|
||||
obj.coin_collected.connect(game.coin_collected)
|
||||
|
||||
# makes and recycles bullets
|
||||
func bulletFactory() -> Bullet:
|
||||
|
||||
Reference in new issue
Block a user