forked from team-sg/hero-mark-2
eel moves on path
This commit is contained in:
parent
56ee4ccb58
commit
acaa6f2d52
3 changed files with 38 additions and 20 deletions
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=31 format=2]
|
[gd_scene load_steps=32 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://objects/enemy/squig.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://objects/enemy/squig.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://tilesets/t_cave.tres" type="TileSet" id=2]
|
[ext_resource path="res://tilesets/t_cave.tres" type="TileSet" id=2]
|
||||||
|
@ -23,6 +23,7 @@
|
||||||
[ext_resource path="res://graphics/enemy/sawblade.png" type="Texture" id=21]
|
[ext_resource path="res://graphics/enemy/sawblade.png" type="Texture" id=21]
|
||||||
[ext_resource path="res://objects/enemy/rolling_fiend.tscn" type="PackedScene" id=22]
|
[ext_resource path="res://objects/enemy/rolling_fiend.tscn" type="PackedScene" id=22]
|
||||||
[ext_resource path="res://objects/enemy/steam.tscn" type="PackedScene" id=23]
|
[ext_resource path="res://objects/enemy/steam.tscn" type="PackedScene" id=23]
|
||||||
|
[ext_resource path="res://objects/enemy/eel.tscn" type="PackedScene" id=24]
|
||||||
[ext_resource path="res://objects/enemy/cop.tscn" type="PackedScene" id=25]
|
[ext_resource path="res://objects/enemy/cop.tscn" type="PackedScene" id=25]
|
||||||
[ext_resource path="res://objects/environment/turret/turret_bullet.tscn" type="PackedScene" id=26]
|
[ext_resource path="res://objects/environment/turret/turret_bullet.tscn" type="PackedScene" id=26]
|
||||||
[ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=27]
|
[ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=27]
|
||||||
|
@ -209,4 +210,7 @@ left_up_boundary = 2.0
|
||||||
right_down_boundary = 4.0
|
right_down_boundary = 4.0
|
||||||
speed = 10
|
speed = 10
|
||||||
|
|
||||||
|
[node name="Eel" parent="." instance=ExtResource( 24 )]
|
||||||
|
position = Vector2( 120, 56 )
|
||||||
|
|
||||||
[editable path="RollingFiend"]
|
[editable path="RollingFiend"]
|
||||||
|
|
|
@ -14,9 +14,10 @@ export var wave_amplitude: float = 4.0
|
||||||
onready var sector: Vector2 = Game.get_sector(global_position)
|
onready var sector: Vector2 = Game.get_sector(global_position)
|
||||||
|
|
||||||
|
|
||||||
onready var hitbox: Area2D = $Hitbox
|
onready var hitbox: Area2D = $Path2D/PathFollow2D/Hitbox
|
||||||
onready var first_segment: CollisionShape2D = $"%Segment"
|
onready var first_segment: CollisionShape2D = $"%Segment"
|
||||||
onready var segment_start: Position2D = $"%SegmentStart"
|
onready var segment_start: Position2D = $"%SegmentStart"
|
||||||
|
onready var path_follow = $Path2D/PathFollow2D
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
@ -25,12 +26,13 @@ func _ready() -> void:
|
||||||
var new_segment = first_segment.duplicate()
|
var new_segment = first_segment.duplicate()
|
||||||
new_segment.position.x = segment_start.position.x + SEGMENT_LENGTH * float(i)
|
new_segment.position.x = segment_start.position.x + SEGMENT_LENGTH * float(i)
|
||||||
hitbox.add_child(new_segment)
|
hitbox.add_child(new_segment)
|
||||||
$Hitbox/TailShape.position.x = segment_start.position.x + SEGMENT_LENGTH * segments
|
$Path2D/PathFollow2D/Hitbox/TailShape.position.x = segment_start.position.x + SEGMENT_LENGTH * segments
|
||||||
_wave_segments()
|
_wave_segments()
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
# move
|
# move
|
||||||
global_position.x += speed * delta * sign(scale.x)
|
# global_position.x += speed * delta * sign(scale.x)
|
||||||
|
path_follow.set_offset(path_follow.get_offset() + speed * delta)
|
||||||
# make segments wibble
|
# make segments wibble
|
||||||
_wave_segments()
|
_wave_segments()
|
||||||
# check for wrapping
|
# check for wrapping
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=9 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://objects/enemy/eel.gd" type="Script" id=1]
|
[ext_resource path="res://objects/enemy/eel.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://graphics/enemy/eel_head.png" type="Texture" id=2]
|
[ext_resource path="res://graphics/enemy/eel_head.png" type="Texture" id=2]
|
||||||
|
@ -6,6 +6,11 @@
|
||||||
[ext_resource path="res://graphics/enemy/eel_tail.png" type="Texture" id=4]
|
[ext_resource path="res://graphics/enemy/eel_tail.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://graphics/enemy/eel_inner_border.png" type="Texture" id=5]
|
[ext_resource path="res://graphics/enemy/eel_inner_border.png" type="Texture" id=5]
|
||||||
|
|
||||||
|
[sub_resource type="Curve2D" id=4]
|
||||||
|
_data = {
|
||||||
|
"points": PoolVector2Array( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, -16, 0, 0, 0, 0, 64, -16, 0, 0, 0, 0, 104, -16, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 144, 24, 0, 0, 0, 0, 136, 48, 0, 0, 0, 0, 128, 56, 0, 0, 0, 0, 104, 64, 0, 0, 0, 0, 56, 72, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 16, 56, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, -8, 32, 0, 0, 0, 0, -8, 16, 0, 0, 0, 0, -8, 16, 0, 0, 0, 0, -8, 8, 0, 0, 0, 0, 0, 0 )
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=3]
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
extents = Vector2( 2, 2 )
|
extents = Vector2( 2, 2 )
|
||||||
|
|
||||||
|
@ -17,62 +22,69 @@ script = ExtResource( 1 )
|
||||||
blood = false
|
blood = false
|
||||||
wave_amplitude = 6.0
|
wave_amplitude = 6.0
|
||||||
|
|
||||||
[node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox"]]
|
[node name="Path2D" type="Path2D" parent="."]
|
||||||
position = Vector2( 0, 4 )
|
curve = SubResource( 4 )
|
||||||
scale = Vector2( -1, 1 )
|
|
||||||
|
|
||||||
[node name="SegmentStart" type="Position2D" parent="Hitbox"]
|
[node name="PathFollow2D" type="PathFollow2D" parent="Path2D"]
|
||||||
|
rotation = -0.463648
|
||||||
|
|
||||||
|
[node name="Hitbox" type="Area2D" parent="Path2D/PathFollow2D" groups=["enemy_hitbox"]]
|
||||||
|
position = Vector2( 7.99424, 0.405511 )
|
||||||
|
rotation = 3.14159
|
||||||
|
scale = Vector2( 1, -1 )
|
||||||
|
|
||||||
|
[node name="SegmentStart" type="Position2D" parent="Path2D/PathFollow2D/Hitbox"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2( 12, 0 )
|
position = Vector2( 12, 0 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_gizmo_extents_": 5.0
|
"_gizmo_extents_": 5.0
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="HeadShape" type="CollisionPolygon2D" parent="Hitbox"]
|
[node name="HeadShape" type="CollisionPolygon2D" parent="Path2D/PathFollow2D/Hitbox"]
|
||||||
position = Vector2( 8, 0 )
|
position = Vector2( 8, 0 )
|
||||||
polygon = PoolVector2Array( -7, -2, 2, -2, 2, 2, -7, 2 )
|
polygon = PoolVector2Array( -7, -2, 2, -2, 2, 2, -7, 2 )
|
||||||
|
|
||||||
[node name="HeadSprite" type="Sprite" parent="Hitbox/HeadShape"]
|
[node name="HeadSprite" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/HeadShape"]
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
position = Vector2( -4, 0 )
|
position = Vector2( -4, 0 )
|
||||||
texture = ExtResource( 2 )
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="InnerBorder" type="Sprite" parent="Hitbox/HeadShape"]
|
[node name="InnerBorder" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/HeadShape"]
|
||||||
position = Vector2( 3, 0 )
|
position = Vector2( 3, 0 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 5 )
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="TailShape" type="CollisionShape2D" parent="Hitbox"]
|
[node name="TailShape" type="CollisionShape2D" parent="Path2D/PathFollow2D/Hitbox"]
|
||||||
position = Vector2( 16, 0 )
|
position = Vector2( 16, 0 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
[node name="TailSprite" type="Sprite" parent="Hitbox/TailShape"]
|
[node name="TailSprite" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/TailShape"]
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
position = Vector2( 2, 0 )
|
position = Vector2( 2, 0 )
|
||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
|
|
||||||
[node name="InnerBorder" type="Sprite" parent="Hitbox/TailShape"]
|
[node name="InnerBorder" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/TailShape"]
|
||||||
position = Vector2( -2, 0 )
|
position = Vector2( -2, 0 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 5 )
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="Segment" type="CollisionShape2D" parent="Hitbox"]
|
[node name="Segment" type="CollisionShape2D" parent="Path2D/PathFollow2D/Hitbox"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2( 12, 0 )
|
position = Vector2( 12, 0 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
[node name="SegmentSprite" type="Sprite" parent="Hitbox/Segment"]
|
[node name="SegmentSprite" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/Segment"]
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
[node name="InnerBorder" type="Sprite" parent="Hitbox/Segment"]
|
[node name="InnerBorder" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/Segment"]
|
||||||
position = Vector2( -2, 0 )
|
position = Vector2( -2, 0 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 5 )
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="InnerBorder2" type="Sprite" parent="Hitbox/Segment"]
|
[node name="InnerBorder2" type="Sprite" parent="Path2D/PathFollow2D/Hitbox/Segment"]
|
||||||
position = Vector2( 3, 0 )
|
position = Vector2( 3, 0 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 5 )
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
|
[connection signal="area_entered" from="Path2D/PathFollow2D/Hitbox" to="." method="_on_Hitbox_area_entered"]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue