ladder and rats looking pretty good. still need to fix rat holes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user