Add wip rover game

This commit is contained in:
snider committed 2022-08-18 19:17:02 -07:00
1 parent 8974f0cc56
commit c63377c1dc
15 files changed
+1423 -3

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
extends RigidBody
func _ready():
$hit_box.set_meta("owner", self)
func on_rover_interact(rover: Spatial) -> bool:
apply_central_impulse(rover.heading * 250.0)
return true
+23
View File
@@ -0,0 +1,23 @@
extends RigidBody
const SPEED = 300.0
const TURN = 2.5
var heading := Vector3.FORWARD
func _physics_process(delta):
heading = heading.rotated(Vector3.UP, Input.get_axis("right", "left") * TURN * delta).normalized()
$visual.global_transform = $visual.global_transform.looking_at($visual.global_transform.origin + heading, Vector3.UP)
func _integrate_forces(state):
add_central_force(Input.get_axis("down", "up") * heading * SPEED)
var c_mag = heading.cross(linear_velocity).y
var c = Vector3.UP.cross(heading).normalized() * c_mag
add_central_force(c * 1.0)
func _unhandled_input(event):
if event.is_action_pressed("action"):
for area in $"%interact_box".get_overlapping_areas():
if area.has_meta("owner"):
area = area.get_meta("owner")
if area.on_rover_interact(self):
break
+8
View File
@@ -0,0 +1,8 @@
extends Camera
func _ready():
pass
func _process(delta):
global_transform.origin.z = $"../rover".global_transform.origin.z
+21
View File
@@ -0,0 +1,21 @@
extends Spatial
func _ready():
spawn_rocks(10)
func spawn_rocks(count: int):
var locations: Array = get_tree().get_nodes_in_group("rock_spawn_location")
locations.shuffle()
for i in range(min(count, locations.size())):
var location = locations[i]
var rock = preload("res://scenes/rock.tscn").instance()
location.add_child(rock)
func _on_collection_area_area_entered(area):
if area.has_meta("owner"):
area = area.get_meta("owner")
area.queue_free()
func _process(delta):
$"%progress_bar".value = $Timer.time_left * 100.0 / $Timer.wait_time