[Minimal] Finishing touches to the basic

This commit is contained in:
Alan Alexander Cerna 2021-11-17 21:44:06 +02:00
parent bf4cc0c9cd
commit a040a8e433
3 changed files with 27 additions and 20 deletions

View File

@ -13,7 +13,6 @@ var coreRay = {}
var desiredLocation = Vector2(0,0)
var movementVector = Vector2(0,0)
var weightVector = Vector2(0,0)
var interacting = false
var interactionRays = []
var degreeTracker
@ -28,6 +27,8 @@ var time = 0
var rotationAmount = 0
var rand_generate = RandomNumberGenerator.new()
var timer = 15
export(int, "Passive", "Friendly", "Agressive") var Mode
func _ready():
@ -36,13 +37,19 @@ func _ready():
pass
func _physics_process(delta):
time += delta#
time += delta
timer += delta
rand_generate.randomize()
get_interaction()
if interactionRays[0]["interacted"]:
if liftSpeed > 0: liftSpeed = move_toward(liftSpeed, 0, deccelerationSpeed)
elif abs(position.y - desiredLocation.y) > 10 and not interacting: liftSpeed -= accelerationSpeed
else: liftSpeed += GRAVITY
elif position.y - desiredLocation.y > 1:
liftSpeed -= accelerationSpeed
elif position.y - desiredLocation.y < -1:
liftSpeed += GRAVITY
for ray in interactionRays:
if ray["interacted"]:
liftSpeed += -ray["end"].normalized().y * maxSpeed
liftSpeed = clamp(liftSpeed, -maxSpeed, maxSpeed)
move_and_slide(Vector2(0,liftSpeed))
if Mode == 0:
@ -54,6 +61,7 @@ func _physics_process(delta):
$TsBotSpriteWeaponOn.hide()
$TsBotSpriteWeaponOff.show()
elif Mode == 2:
if fireRate < 20: fireRate = 5*fireRate
$ts_bot_sprite.play("agressive_idle")
$TsBotSpriteWeaponOn.show()
$TsBotSpriteWeaponOff.hide()
@ -64,17 +72,16 @@ func _physics_process(delta):
time = 0
func get_interaction():
print(interacting)
degreeTracker = 0
interactionRays = []
worldSpace2d = get_world_2d().direct_space_state
interacting = false
while degreeTracker < 360 + degreeStep:
interactionRay = worldSpace2d.intersect_ray(startVector, Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, [self])
var interacted = false
if "position" in interactionRay:
if "position" in interactionRay and interactionRay["collider"].is_in_group("Player"):
interacted = true
if timer > 15:
Mode += 1
interacting = true
timer = 0
interactionRays.append({"start": startVector, "end": Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, "degrees": degreeTracker,"ray": interactionRay, "interacted": interacted})
degreeTracker += degreeStep

View File

@ -49,11 +49,6 @@ animations = [ {
"name": "idle",
"speed": 12.0
}, {
"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
"loop": false,
"name": "transition_down",
"speed": 24.0
}, {
"frames": [ ExtResource( 30 ), ExtResource( 42 ), ExtResource( 16 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 31 ), ExtResource( 21 ), ExtResource( 32 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 33 ) ],
"loop": true,
"name": "idle_down",
@ -63,6 +58,11 @@ animations = [ {
"loop": false,
"name": "transition_up",
"speed": 24.0
}, {
"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
"loop": false,
"name": "transition_down",
"speed": 24.0
} ]
[sub_resource type="RectangleShape2D" id=2]
@ -76,7 +76,7 @@ position = Vector2( -3.36365, 0 )
scale = Vector2( 0.75, 0.75 )
frames = SubResource( 1 )
animation = "idle"
frame = 8
frame = 12
playing = true
[node name="trinity_site_level_layout-level_design_z-index_0_grass_type-2" type="Sprite" parent="."]

View File

@ -21,15 +21,15 @@ animations = [ {
"name": "agressive_idle",
"speed": 5.0
}, {
"frames": [ ExtResource( 3 ) ],
"loop": true,
"name": "passive_idle",
"speed": 5.0
}, {
"frames": [ ExtResource( 4 ) ],
"loop": true,
"name": "friendly_idle",
"speed": 5.0
}, {
"frames": [ ExtResource( 3 ) ],
"loop": true,
"name": "passive_idle",
"speed": 5.0
} ]
[node name="ts_bot" type="KinematicBody2D"]