sync
This commit is contained in:
parent
f7d034147d
commit
57e3151019
15 changed files with 92 additions and 46 deletions
|
@ -14,4 +14,4 @@ func hit(body):
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
apply_central_force((global_position - player.global_position).normalized() * -300)
|
apply_central_force((global_position - player.global_position).normalized() * -900)
|
||||||
|
|
|
@ -43,6 +43,9 @@ func spawn(item: WaveEnemy):
|
||||||
|
|
||||||
var spawn_loc = Vector2.ZERO
|
var spawn_loc = Vector2.ZERO
|
||||||
|
|
||||||
|
if item.boss:
|
||||||
|
spawn_loc = Vector2(1920/2, 1080/2)
|
||||||
|
else:
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
var test_pos = Vector2(randf(), randf()) * Vector2(1920, 1080)
|
var test_pos = Vector2(randf(), randf()) * Vector2(1920, 1080)
|
||||||
if not $"../CollisionCheck".is_clear(test_pos, item.check_distance):
|
if not $"../CollisionCheck".is_clear(test_pos, item.check_distance):
|
||||||
|
@ -50,6 +53,7 @@ func spawn(item: WaveEnemy):
|
||||||
spawn_loc = test_pos
|
spawn_loc = test_pos
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if not item.boss:
|
||||||
var portal_effect = portal.instantiate()
|
var portal_effect = portal.instantiate()
|
||||||
portal_effect.global_position = spawn_loc
|
portal_effect.global_position = spawn_loc
|
||||||
portal_effect.sprite_frames = item.portal_texture
|
portal_effect.sprite_frames = item.portal_texture
|
||||||
|
@ -57,5 +61,6 @@ func spawn(item: WaveEnemy):
|
||||||
await get_tree().create_timer(0.6).timeout
|
await get_tree().create_timer(0.6).timeout
|
||||||
var node = item.enemy.instantiate()
|
var node = item.enemy.instantiate()
|
||||||
node.global_position = spawn_loc
|
node.global_position = spawn_loc
|
||||||
|
if not item.boss:
|
||||||
node.rotation_degrees = 360 * randf()
|
node.rotation_degrees = 360 * randf()
|
||||||
$/root/Node2D.add_child(node)
|
$/root/Node2D.add_child(node)
|
||||||
|
|
|
@ -4,12 +4,7 @@ var bounces = 0
|
||||||
@onready var player = $"../Player"
|
@onready var player = $"../Player"
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
apply_central_force((global_position - player.global_position).normalized() * -50)
|
rotation = linear_velocity.angle()
|
||||||
if linear_velocity.length() < 10:
|
|
||||||
$Sprite2D.play("default")
|
|
||||||
|
|
||||||
if player in $Explosion.get_overlapping_bodies():
|
|
||||||
$Sprite2D.play("default")
|
|
||||||
|
|
||||||
func hit(body):
|
func hit(body):
|
||||||
if body.is_in_group("destructible"):
|
if body.is_in_group("destructible"):
|
||||||
|
|
|
@ -13,7 +13,7 @@ physics_material_override = SubResource("PhysicsMaterial_odemo")
|
||||||
gravity_scale = 1.66533e-16
|
gravity_scale = 1.66533e-16
|
||||||
max_contacts_reported = 2
|
max_contacts_reported = 2
|
||||||
contact_monitor = true
|
contact_monitor = true
|
||||||
linear_damp = 0.1
|
linear_damp = 1.0
|
||||||
angular_velocity = 0.174533
|
angular_velocity = 0.174533
|
||||||
script = ExtResource("1_726g8")
|
script = ExtResource("1_726g8")
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ custom_features=""
|
||||||
export_filter="exclude"
|
export_filter="exclude"
|
||||||
export_files=PackedStringArray("res://godotgif/godotgif.gdextension")
|
export_files=PackedStringArray("res://godotgif/godotgif.gdextension")
|
||||||
include_filter="*.txt"
|
include_filter="*.txt"
|
||||||
exclude_filter=""
|
exclude_filter="*.cache"
|
||||||
export_path="../Build/index.html"
|
export_path="../Build/index.html"
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
|
|
|
@ -61,9 +61,12 @@ func start_aim():
|
||||||
func can_shoot(yn):
|
func can_shoot(yn):
|
||||||
can_damage = yn
|
can_damage = yn
|
||||||
|
|
||||||
|
var dying = false
|
||||||
|
|
||||||
func destroy():
|
func destroy():
|
||||||
if is_queued_for_deletion():
|
if dying:
|
||||||
return
|
return
|
||||||
|
dying = true
|
||||||
var explosion = load("res://explosion.tscn").instantiate()
|
var explosion = load("res://explosion.tscn").instantiate()
|
||||||
$"/root/Node2D".add_child(explosion)
|
$"/root/Node2D".add_child(explosion)
|
||||||
explosion.global_position = global_position
|
explosion.global_position = global_position
|
||||||
|
|
47
main.tscn
47
main.tscn
File diff suppressed because one or more lines are too long
|
@ -28,6 +28,7 @@ position = Vector2(3, 0)
|
||||||
shape = SubResource("CircleShape2D_nxtxc")
|
shape = SubResource("CircleShape2D_nxtxc")
|
||||||
|
|
||||||
[node name="DeathFX" type="AudioStreamPlayer2D" parent="."]
|
[node name="DeathFX" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
process_mode = 3
|
||||||
stream = ExtResource("3_urvwh")
|
stream = ExtResource("3_urvwh")
|
||||||
|
|
||||||
[node name="QuareFX" type="AudioStreamPlayer2D" parent="."]
|
[node name="QuareFX" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
|
|
@ -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):
|
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):
|
func hit(body):
|
||||||
if body.is_in_group("destructible"):
|
if body.is_in_group("destructible"):
|
||||||
|
@ -23,6 +39,7 @@ func explode():
|
||||||
|
|
||||||
|
|
||||||
func _on_explosion_body_entered(body):
|
func _on_explosion_body_entered(body):
|
||||||
|
#print(body.name)
|
||||||
if body.name == "Player":
|
if body.name == "Player":
|
||||||
$Sprite2D.play("default")
|
$Sprite2D.play("default")
|
||||||
$ExplosionRadius.visible = true
|
$ExplosionRadius.visible = true
|
||||||
|
|
|
@ -113,6 +113,7 @@ radius = 254.0
|
||||||
[node name="Riangle" type="RigidBody2D" groups=["destructible", "enemy"]]
|
[node name="Riangle" type="RigidBody2D" groups=["destructible", "enemy"]]
|
||||||
physics_material_override = SubResource("PhysicsMaterial_btknm")
|
physics_material_override = SubResource("PhysicsMaterial_btknm")
|
||||||
gravity_scale = 1.66533e-16
|
gravity_scale = 1.66533e-16
|
||||||
|
freeze = true
|
||||||
linear_damp = 0.2
|
linear_damp = 0.2
|
||||||
script = ExtResource("1_81oja")
|
script = ExtResource("1_81oja")
|
||||||
|
|
||||||
|
@ -140,6 +141,7 @@ script = ExtResource("4_eemlr")
|
||||||
rotation = -1.5708
|
rotation = -1.5708
|
||||||
collision_layer = 3
|
collision_layer = 3
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
monitorable = false
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Explosion"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Explosion"]
|
||||||
shape = SubResource("CircleShape2D_cq436")
|
shape = SubResource("CircleShape2D_cq436")
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
extends PhysicsBody2D
|
extends PhysicsBody2D
|
||||||
|
|
||||||
|
var dying = false
|
||||||
|
|
||||||
func destroy():
|
func destroy():
|
||||||
|
if dying:
|
||||||
|
return
|
||||||
|
dying = true
|
||||||
var explosion = load("res://explosion.tscn").instantiate()
|
var explosion = load("res://explosion.tscn").instantiate()
|
||||||
$"/root/Node2D".add_child(explosion)
|
$"/root/Node2D".add_child(explosion)
|
||||||
explosion.global_position = global_position
|
explosion.global_position = global_position
|
||||||
|
|
|
@ -18,8 +18,12 @@ func eject():
|
||||||
var riangle = spawner.get_child(0)
|
var riangle = spawner.get_child(0)
|
||||||
if riangle == null:
|
if riangle == null:
|
||||||
return
|
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
|
await get_tree().create_timer(0.05).timeout
|
||||||
|
if riangle == null:
|
||||||
|
return
|
||||||
|
|
||||||
riangle.reparent($/root/Node2D)
|
riangle.reparent($/root/Node2D)
|
||||||
|
|
||||||
await get_tree().create_timer(0.1).timeout
|
await get_tree().create_timer(0.1).timeout
|
||||||
|
|
4
tar.gd
4
tar.gd
|
@ -2,7 +2,7 @@ extends RigidBody2D
|
||||||
|
|
||||||
var phase2_active = false
|
var phase2_active = false
|
||||||
var health = 10
|
var health = 10
|
||||||
var spawn_remaining = 5
|
var spawn_remaining = 10
|
||||||
@onready var player = $"../Player"
|
@onready var player = $"../Player"
|
||||||
|
|
||||||
func hit(body):
|
func hit(body):
|
||||||
|
@ -25,7 +25,7 @@ func _ready():
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
if phase2_active:
|
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():
|
func phase():
|
||||||
if phase2_active:
|
if phase2_active:
|
||||||
|
|
2
tar.tscn
2
tar.tscn
|
@ -463,7 +463,7 @@ animations = [{
|
||||||
"speed": 10.0
|
"speed": 10.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="Tar" type="RigidBody2D"]
|
[node name="Tar" type="RigidBody2D" groups=["enemy"]]
|
||||||
position = Vector2(386, 292)
|
position = Vector2(386, 292)
|
||||||
gravity_scale = 1.66533e-16
|
gravity_scale = 1.66533e-16
|
||||||
freeze = true
|
freeze = true
|
||||||
|
|
|
@ -4,5 +4,6 @@ class_name WaveEnemy
|
||||||
|
|
||||||
|
|
||||||
@export var enemy: PackedScene = null
|
@export var enemy: PackedScene = null
|
||||||
|
@export var boss: bool = false
|
||||||
@export var portal_texture: SpriteFrames = null
|
@export var portal_texture: SpriteFrames = null
|
||||||
@export var check_distance = 100
|
@export var check_distance = 100
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue