create rolling fiend

This commit is contained in:
Haze Weathers 2023-01-10 00:30:52 -05:00
parent 1bd6fb04a1
commit dcca66620e
4 changed files with 110 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/roller_fiend.png-2f4ff517749815b6378d9070bb47d63f.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/enemy/roller_fiend.png"
dest_files=[ "res://.import/roller_fiend.png-2f4ff517749815b6378d9070bb47d63f.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,22 @@
extends "res://objects/enemy/enemy.gd"
export var move_speed: float = 0.0
var move_dir: Vector2 = Vector2(-1.0, 0.0)
onready var casts = $Raycasts
onready var wall_cast = $Raycasts/WallCast
onready var floor_cast = $Raycasts/FloorCast
func _physics_process(delta):
position += move_dir * move_speed * delta
var rotation_change = -1.5708
if not floor_cast.is_colliding():
casts.rotation += rotation_change
position -= move_dir
move_dir = move_dir.rotated(rotation_change)
position += move_dir
elif wall_cast.is_colliding():
casts.rotation -= rotation_change
move_dir = move_dir.rotated(-rotation_change)

View file

@ -0,0 +1,53 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://objects/enemy/enemy.tscn" type="PackedScene" id=1]
[ext_resource path="res://graphics/enemy/roller_fiend.png" type="Texture" id=2]
[ext_resource path="res://objects/enemy/rolling_fiend.gd" type="Script" id=3]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 16, 16 )
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 2 )
region = Rect2( 16, 0, 16, 16 )
[sub_resource type="SpriteFrames" id=3]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ) ],
"loop": true,
"name": "default",
"speed": 10.0
} ]
[sub_resource type="RectangleShape2D" id=4]
extents = Vector2( 4, 4 )
[node name="RollingFiend" instance=ExtResource( 1 )]
script = ExtResource( 3 )
move_speed = 50.0
[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"]
frames = SubResource( 3 )
frame = 1
playing = true
[node name="Hitbox" type="Area2D" parent="." index="1"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox" index="0"]
rotation = -0.020475
shape = SubResource( 4 )
[node name="Raycasts" type="Node2D" parent="." index="2"]
[node name="WallCast" type="RayCast2D" parent="Raycasts" index="0"]
position = Vector2( -8, 8 )
enabled = true
cast_to = Vector2( 0, -16 )
[node name="FloorCast" type="RayCast2D" parent="Raycasts" index="1"]
position = Vector2( -8, 9 )
enabled = true
cast_to = Vector2( 16, 0 )
[connection signal="area_entered" from="Hitbox" to="." method="_on_Area2D_area_entered"]