ladder and rats looking pretty good. still need to fix rat holes

This commit is contained in:
Derek
2024-07-28 15:36:04 -05:00
parent 5a41a22160
commit 98f5858b88
12 changed files with 355 additions and 34 deletions

View File

@@ -37,7 +37,7 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
print(particle_number)
pass
func gun_spawn(index):
#loop around if scrolling past available guns

View File

@@ -23,5 +23,9 @@ func breaking(current_velocity):
spawn_broken.position = global_position
spawn_broken.transform.basis = global_transform.basis
spawn_broken.rotation = rotation
var pieces = spawn_broken.get_children()
for piece in pieces:
if piece is RigidBody3D:
piece.linear_velocity += current_velocity
get_tree().get_root().add_child(spawn_broken)
queue_free()

View File

@@ -17,6 +17,9 @@ func breaking(current_velocity):
spawn_broken.position = global_position
spawn_broken.transform.basis = global_transform.basis
spawn_broken.rotation = rotation
var pieces = spawn_broken.get_children()
for piece in pieces:
if piece is RigidBody3D:
piece.linear_velocity += current_velocity
get_tree().get_root().add_child(spawn_broken)
queue_free()

View File

@@ -132,7 +132,7 @@ func _physics_process(delta):
velocity.x = direction.x * speed * .3
else:
velocity.y = lerp(velocity.y, -direction.z * speed, delta * 6.5)
velocity.z = lerp(velocity.z, direction.z * speed, delta * 6.5)
velocity.x = lerp(velocity.x, direction.x * speed, delta * 6.5)
else:
velocity.x = lerp(velocity.x, direction.x * speed, delta * 6.5)
velocity.z = lerp(velocity.z, direction.z * speed, delta * 6.5)

View File

@@ -1,9 +1,18 @@
extends RigidBody3D
extends CharacterBody3D
@onready var anim_player = $AnimationPlayer
@export var dead_rat : Resource
@export var SPEED = 7
var end_hole
var control_node
var rng = RandomNumberGenerator.new()
@onready var anim_player = $AnimationPlayer
@onready var nav_agent = $NavigationAgent3D
@onready var ray = $RayCast3D
@onready var ray_2 = $RayCast3D2
@onready var ray_3 = $RayCast3D3
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -11,17 +20,32 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if end_hole != null:
var move_direction = (end_hole.global_position - self.position).normalized()
position += transform.basis * move_direction * delta * 7
self.look_at(end_hole.position,Vector3.UP)
func _physics_process(delta):
# Navigation
nav_agent.set_target_position(end_hole.global_transform.origin)
var next_nav_point = nav_agent.get_next_path_position()
velocity = (next_nav_point - global_transform.origin).normalized() * SPEED
look_at(end_hole.global_transform.origin, Vector3.UP)
if ray.is_colliding() or ray_2.is_colliding() or ray_3.is_colliding():
velocity.y += 10
move_and_slide()
func breaking(bullet_velocity):
var spawn_broken = dead_rat.instantiate()
spawn_broken.position = global_position
spawn_broken.transform.basis = global_transform.basis
spawn_broken.rotation = rotation
var bits = spawn_broken.get_children()
for bit in bits:
if bit is RigidBody3D:
bit.linear_velocity += bullet_velocity
if bit is GPUParticles3D:
bit.emitting = true
var pieces = spawn_broken.get_children()
get_tree().get_root().add_child(spawn_broken)
queue_free()