contra/scenes/game.gd
2024-11-12 18:51:04 +01:00

95 lines
2.1 KiB
GDScript

extends Node2D
var lives_p1 = 2
var lives_p2 = 2
var player1 = preload("res://scenes/player_1.tscn")
var player2 = preload("res://scenes/player_2.tscn")
var sfxScn = preload("res://scenes/sfx.tscn")
var score_p1 = 0
var score_p2 = 0
# Called when the node enters the scene tree for the first time.
func _ready():
respawnP1()
if(Singleton.playerNumbers > 1):
respawnP2()
else:
lives_p2 = 0
updateLives()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func respawnP1():
updateLives()
if(lives_p1 >= 0):
var newPlayer = player1.instantiate()
var lvl = get_tree().get_first_node_in_group("level")
lvl.add_child(newPlayer)
newPlayer.global_position = $SpawnPoint.global_position
else:
pass
func respawnP2():
updateLives()
if(lives_p2 >= 0):
var newPlayer = player2.instantiate()
var lvl = get_tree().get_first_node_in_group("level")
lvl.add_child(newPlayer)
newPlayer.global_position = $SpawnPoint.global_position
var allPlayers = get_tree().get_nodes_in_group("player")
for p in allPlayers:
p.add_collision_exception_with(newPlayer.get_node("char"))
else:
pass
func updateLives():
if(lives_p1 > 1):
$"UI/P1-1".visible = true
$"UI/P1-2".visible = true
elif(lives_p1 == 1):
$"UI/P1-1".visible = true
$"UI/P1-2".visible = false
else:
$"UI/P1-1".visible = false
$"UI/P1-2".visible = false
if(lives_p2 > 1):
$"UI/P2-1".visible = true
$"UI/P2-2".visible = true
elif(lives_p2 == 1):
$"UI/P2-1".visible = true
$"UI/P2-2".visible = false
else:
$"UI/P2-1".visible = false
$"UI/P2-2".visible = false
func addNewLife_P1():
lives_p1 += 1
updateLives()
func setP1Score(num):
score_p1 += num
$UI/P1_Score.text = str(score_p1)
func setP2Score(num):
score_p2 += num
$UI/P2_Score.text = str(score_p2)
func createSFX(num):
var newSfx = sfxScn.instantiate()
var lvl = get_tree().get_first_node_in_group("level")
lvl.add_child(newSfx)
var newSound = load("res://BGM-SFX/Contra SFX (" + str(num) + ").wav" )
newSfx.set_stream(newSound)
newSfx.play()
func _on_dead_zone_body_entered(body):
if(body.is_in_group("player")):
body.death()