level 4 a bowser

This commit is contained in:
Jonas Braus
2024-08-03 22:13:40 +02:00
parent 30b0a527b4
commit a9c2f587da
24 changed files with 8249 additions and 5 deletions
+19
View File
@@ -0,0 +1,19 @@
extends Area2D
@export var speed = 80
@onready var audio_stream_player_2d = $AudioStreamPlayer2D
func _on_die_body_entered(body):
queue_free()
func _physics_process(delta):
position.x += speed * delta
func _on_body_entered_player(body):
body.shrink()
queue_free()
func _on_audio_stream_player_2d_finished():
audio_stream_player_2d.play()
+43
View File
@@ -0,0 +1,43 @@
extends RigidBody2D
@onready var player = %player
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var shoot_spawner = $ShootSpawner
const BOWSER_JR_FIRE = preload("res://scenes/enemies/bowser_jr_fire.tscn")
var shoot_direction = -1
const jump_force = 250
@onready var timer = $Timer
var pause = false
func _process(delta):
if pause:
return
if player.position.x > position.x:
animated_sprite_2d.flip_h = true
shoot_direction = 1
shoot_spawner.position.x = 32
else:
animated_sprite_2d.flip_h = false
shoot_direction = -1
shoot_spawner.position.x = 0
func shoot():
if pause:
return
animated_sprite_2d.play("open_mouth")
timer.start()
var instance = BOWSER_JR_FIRE.instantiate()
instance.speed *= shoot_direction
get_parent().add_child(instance)
instance.position.x = shoot_spawner.global_position.x
instance.position.y = shoot_spawner.global_position.y
func jump():
if pause:
return
linear_velocity.y = -jump_force
func f_die():
pass
func _on_timer_timeout():
animated_sprite_2d.play("default")
+46
View File
@@ -0,0 +1,46 @@
extends Node2D
@onready var bridge_parts = [
$RigidBody2D13,
$RigidBody2D12,$RigidBody2D11,$RigidBody2D10,$RigidBody2D9,$RigidBody2D8,
$RigidBody2D7,$RigidBody2D6,$RigidBody2D5,$RigidBody2D4,$RigidBody2D3,
$RigidBody2D2,$RigidBody2D
]
@onready var chain = $chain
@onready var timer = $Timer
@onready var sprite_2d_15 = $Area2D/Sprite2D15
@onready var player = %player
@onready var bowserjr = %bowserjr
@onready var audio_stream_player = $AudioStreamPlayer
@onready var music = %Music
@export var level_score : int
var curr_down = 0
func _on_area_2d_body_entered(body):
music.stop()
audio_stream_player.play()
chain.visible = false
player.on_pause = true
bowserjr.pause = true
sprite_2d_15.rotation_degrees = -90
timer.start()
func _on_timer_timeout():
if curr_down < len(bridge_parts):
bridge_parts[curr_down].gravity_scale = 1
curr_down += 1
else:
timer.stop()
func _on_audio_stream_player_finished():
var config = ConfigFile.new()
var err = config.load("user://config.cfg")
if err == OK:
var available_level = config.get_value("level", "available_level", 0)
level_score = level_score if level_score > available_level else available_level
config.set_value("level", "available_level", level_score)
config.save("user://config.cfg")
get_tree().change_scene_to_file("res://scenes/levels/level_0.tscn")
+20
View File
@@ -0,0 +1,20 @@
extends Area2D
@export var rot_speed = 3
@onready var timer = $Timer
var innocent = false
func _physics_process(delta):
rotate(rot_speed * delta)
func _on_body_entered(body):
if not innocent:
body.shrink()
innocent = true
timer.start()
func _on_timer_timeout():
innocent = false