This commit is contained in:
ultrablob 2024-04-30 15:37:00 -04:00
parent f7d034147d
commit 57e3151019
15 changed files with 92 additions and 46 deletions

View file

@ -14,4 +14,4 @@ func hit(body):
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
apply_central_force((global_position - player.global_position).normalized() * -300)
apply_central_force((global_position - player.global_position).normalized() * -900)

View file

@ -43,6 +43,9 @@ func spawn(item: WaveEnemy):
var spawn_loc = Vector2.ZERO
if item.boss:
spawn_loc = Vector2(1920/2, 1080/2)
else:
for i in range(10):
var test_pos = Vector2(randf(), randf()) * Vector2(1920, 1080)
if not $"../CollisionCheck".is_clear(test_pos, item.check_distance):
@ -50,6 +53,7 @@ func spawn(item: WaveEnemy):
spawn_loc = test_pos
break
if not item.boss:
var portal_effect = portal.instantiate()
portal_effect.global_position = spawn_loc
portal_effect.sprite_frames = item.portal_texture
@ -57,5 +61,6 @@ func spawn(item: WaveEnemy):
await get_tree().create_timer(0.6).timeout
var node = item.enemy.instantiate()
node.global_position = spawn_loc
if not item.boss:
node.rotation_degrees = 360 * randf()
$/root/Node2D.add_child(node)

View file

@ -4,12 +4,7 @@ var bounces = 0
@onready var player = $"../Player"
func _physics_process(delta):
apply_central_force((global_position - player.global_position).normalized() * -50)
if linear_velocity.length() < 10:
$Sprite2D.play("default")
if player in $Explosion.get_overlapping_bodies():
$Sprite2D.play("default")
rotation = linear_velocity.angle()
func hit(body):
if body.is_in_group("destructible"):

View file

@ -13,7 +13,7 @@ physics_material_override = SubResource("PhysicsMaterial_odemo")
gravity_scale = 1.66533e-16
max_contacts_reported = 2
contact_monitor = true
linear_damp = 0.1
linear_damp = 1.0
angular_velocity = 0.174533
script = ExtResource("1_726g8")

View file

@ -8,7 +8,7 @@ custom_features=""
export_filter="exclude"
export_files=PackedStringArray("res://godotgif/godotgif.gdextension")
include_filter="*.txt"
exclude_filter=""
exclude_filter="*.cache"
export_path="../Build/index.html"
encryption_include_filters=""
encryption_exclude_filters=""

View file

@ -61,9 +61,12 @@ func start_aim():
func can_shoot(yn):
can_damage = yn
var dying = false
func destroy():
if is_queued_for_deletion():
if dying:
return
dying = true
var explosion = load("res://explosion.tscn").instantiate()
$"/root/Node2D".add_child(explosion)
explosion.global_position = global_position

File diff suppressed because one or more lines are too long

View file

@ -28,6 +28,7 @@ position = Vector2(3, 0)
shape = SubResource("CircleShape2D_nxtxc")
[node name="DeathFX" type="AudioStreamPlayer2D" parent="."]
process_mode = 3
stream = ExtResource("3_urvwh")
[node name="QuareFX" type="AudioStreamPlayer2D" parent="."]

View file

@ -1,9 +1,25 @@
extends "res://riangle.gd"
extends RigidBody2D
@onready var player = $"../Player"
@onready var player = $"/root/Node2D/Player"
var dying = false
func destroy():
if dying:
return
dying = true
var explosion = load("res://explosion.tscn").instantiate()
$"/root/Node2D".add_child(explosion)
explosion.global_position = global_position
await get_tree().create_timer(0.2).timeout
queue_free()
func _physics_process(delta):
apply_central_force((global_position - player.global_position).normalized() * -50)
apply_central_force((global_position - player.global_position).normalized() * -200)
$ExplosionRadius.visible = false
for body in $Explosion.get_overlapping_bodies():
if body.name == "Player":
$ExplosionRadius.visible = true
func hit(body):
if body.is_in_group("destructible"):
@ -23,6 +39,7 @@ func explode():
func _on_explosion_body_entered(body):
#print(body.name)
if body.name == "Player":
$Sprite2D.play("default")
$ExplosionRadius.visible = true

View file

@ -113,6 +113,7 @@ radius = 254.0
[node name="Riangle" type="RigidBody2D" groups=["destructible", "enemy"]]
physics_material_override = SubResource("PhysicsMaterial_btknm")
gravity_scale = 1.66533e-16
freeze = true
linear_damp = 0.2
script = ExtResource("1_81oja")
@ -140,6 +141,7 @@ script = ExtResource("4_eemlr")
rotation = -1.5708
collision_layer = 3
collision_mask = 3
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Explosion"]
shape = SubResource("CircleShape2D_cq436")

View file

@ -1,6 +1,11 @@
extends PhysicsBody2D
var dying = false
func destroy():
if dying:
return
dying = true
var explosion = load("res://explosion.tscn").instantiate()
$"/root/Node2D".add_child(explosion)
explosion.global_position = global_position

View file

@ -18,8 +18,12 @@ func eject():
var riangle = spawner.get_child(0)
if riangle == null:
return
riangle.apply_central_impulse(Vector2(1000, randi_range(-100, 100)).rotated(spawner.rotation))
riangle.freeze = false
riangle.apply_central_impulse(Vector2(500, randi_range(-100, 100)).rotated(spawner.rotation))
await get_tree().create_timer(0.05).timeout
if riangle == null:
return
riangle.reparent($/root/Node2D)
await get_tree().create_timer(0.1).timeout

4
tar.gd
View file

@ -2,7 +2,7 @@ extends RigidBody2D
var phase2_active = false
var health = 10
var spawn_remaining = 5
var spawn_remaining = 10
@onready var player = $"../Player"
func hit(body):
@ -25,7 +25,7 @@ func _ready():
func _physics_process(delta):
if phase2_active:
apply_central_force((global_position - player.global_position).normalized() * -1700)
apply_central_force((global_position - player.global_position).normalized() * -1600)
func phase():
if phase2_active:

View file

@ -463,7 +463,7 @@ animations = [{
"speed": 10.0
}]
[node name="Tar" type="RigidBody2D"]
[node name="Tar" type="RigidBody2D" groups=["enemy"]]
position = Vector2(386, 292)
gravity_scale = 1.66533e-16
freeze = true

View file

@ -4,5 +4,6 @@ class_name WaveEnemy
@export var enemy: PackedScene = null
@export var boss: bool = false
@export var portal_texture: SpriteFrames = null
@export var check_distance = 100