From c63377c1dcdf060be24af6e339c816a3159890ea Mon Sep 17 00:00:00 2001 From: Daniel Snider Date: Thu, 18 Aug 2022 19:14:35 -0700 Subject: [PATCH] Add wip rover game --- assets/rover_level/Material_002.material | Bin 0 -> 780 bytes assets/rover_level/Rock.material | Bin 0 -> 761 bytes assets/rover_level/RoverGame.glb | Bin 0 -> 150936 bytes assets/rover_level/RoverGame.glb.import | 1065 ++++++++++++++++++++++ assets/rover_level/blinn1.material | Bin 0 -> 765 bytes project.godot | 1 + scenes/main.tscn | 2 - scenes/player.tscn | 2 +- scenes/rock.tscn | 34 + scenes/rover.tscn | 47 + scenes/rover_game.tscn | 214 +++++ scripts/rock.gd | 9 + scripts/rover.gd | 23 + scripts/rover_camera.gd | 8 + scripts/rover_game.gd | 21 + 15 files changed, 1423 insertions(+), 3 deletions(-) create mode 100644 assets/rover_level/Material_002.material create mode 100644 assets/rover_level/Rock.material create mode 100644 assets/rover_level/RoverGame.glb create mode 100644 assets/rover_level/RoverGame.glb.import create mode 100644 assets/rover_level/blinn1.material create mode 100644 scenes/rock.tscn create mode 100644 scenes/rover.tscn create mode 100644 scenes/rover_game.tscn create mode 100644 scripts/rock.gd create mode 100644 scripts/rover.gd create mode 100644 scripts/rover_camera.gd create mode 100644 scripts/rover_game.gd diff --git a/assets/rover_level/Material_002.material b/assets/rover_level/Material_002.material new file mode 100644 index 0000000000000000000000000000000000000000..72d94d762dded3559741214a191c3db1424bc015 GIT binary patch literal 780 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

j}nF=3DwX&8SS}>O?by9wi%?A_Yr4Mc! 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 literal 0 HcmV?d00001 diff --git a/project.godot b/project.godot index 19a1c89..546e06d 100644 --- a/project.godot +++ b/project.godot @@ -183,6 +183,7 @@ open_debug={ 3d_physics/layer_3="Player Interact Box" 3d_physics/layer_4="Interactable" 3d_physics/layer_5="Camera Zone" +3d_physics/layer_6="Rock" [physics] diff --git a/scenes/main.tscn b/scenes/main.tscn index e7362d8..1398790 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -61,9 +61,7 @@ ssao_enabled = true ssao_radius = 3.86 ssao_intensity = 0.69 dof_blur_far_enabled = true -dof_blur_far_amount = 0.15 dof_blur_near_enabled = true -dof_blur_near_amount = 0.15 adjustment_contrast = 1.97 [node name="main" type="Spatial"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 681b6d1..1499b1d 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -697,7 +697,7 @@ mesh = SubResource( 1 ) skin = SubResource( 2 ) [node name="head_bone" type="BoneAttachment" parent="model_transform/DungMan/Armature/Skeleton" index="1"] -transform = Transform( 1, -2.22045e-16, 5.12852e-23, 1.32349e-23, 2.83122e-07, 1, -2.22045e-16, -1, 2.83122e-07, -3.33067e-16, 5.21541e-08, -1.5 ) +transform = Transform( 1, -2.22044e-16, -4.27702e-19, 2.64698e-23, -0.00192609, 0.999998, -2.22045e-16, -0.999998, -0.00192609, -3.33198e-16, 0.00261936, -1.49514 ) bone_name = "Item" [node name="ItemSpawn" type="Spatial" parent="model_transform/DungMan/Armature/Skeleton/head_bone"] diff --git a/scenes/rock.tscn b/scenes/rock.tscn new file mode 100644 index 0000000..fdb7e0a --- /dev/null +++ b/scenes/rock.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://scripts/rock.gd" type="Script" id=1] + +[sub_resource type="PhysicsMaterial" id=9] +friction = 0.75 +bounce = 0.5 + +[sub_resource type="SphereShape" id=7] +radius = 4.0 + +[sub_resource type="SphereMesh" id=8] +radius = 4.0 +height = 8.0 + +[node name="rock" type="RigidBody"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) +mass = 5.0 +physics_material_override = SubResource( 9 ) +axis_lock_linear_y = true +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 7 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +mesh = SubResource( 8 ) + +[node name="hit_box" type="Area" parent="."] +collision_layer = 40 +collision_mask = 0 + +[node name="CollisionShape" type="CollisionShape" parent="hit_box"] +shape = SubResource( 7 ) diff --git a/scenes/rover.tscn b/scenes/rover.tscn new file mode 100644 index 0000000..7a7b789 --- /dev/null +++ b/scenes/rover.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scripts/rover.gd" type="Script" id=1] + +[sub_resource type="CylinderShape" id=13] +radius = 2.98085 + +[sub_resource type="CubeMesh" id=2] +size = Vector3( 6, 2, 6 ) + +[sub_resource type="SpatialMaterial" id=12] +albedo_color = Color( 0.627451, 0.156863, 0.156863, 1 ) + +[sub_resource type="BoxShape" id=9] +extents = Vector3( 2.90757, 1, 2.12399 ) + +[node name="rover" type="RigidBody"] +can_sleep = false +axis_lock_linear_y = true +axis_lock_angular_x = true +axis_lock_angular_y = true +axis_lock_angular_z = true +linear_damp = 5.0 +angular_damp = 5.0 +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) +shape = SubResource( 13 ) + +[node name="visual" type="Spatial" parent="."] + +[node name="MeshInstance" type="MeshInstance" parent="visual"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) +mesh = SubResource( 2 ) +skeleton = NodePath("../../..") +material/0 = SubResource( 12 ) + +[node name="interact_box" type="Area" parent="visual"] +unique_name_in_owner = true +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -3.96067 ) +collision_layer = 4 +collision_mask = 8 + +[node name="CollisionShape" type="CollisionShape" parent="visual/interact_box"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39215 ) +shape = SubResource( 9 ) diff --git a/scenes/rover_game.tscn b/scenes/rover_game.tscn new file mode 100644 index 0000000..bc9fba3 --- /dev/null +++ b/scenes/rover_game.tscn @@ -0,0 +1,214 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://scenes/rover.tscn" type="PackedScene" id=1] +[ext_resource path="res://assets/rover_level/RoverGame.glb" type="PackedScene" id=4] +[ext_resource path="res://scripts/rover_camera.gd" type="Script" id=5] +[ext_resource path="res://scripts/rover_game.gd" type="Script" id=6] + +[sub_resource type="BoxShape" id=7] +extents = Vector3( 21.7976, 4.38074, 5.34608 ) + +[sub_resource type="ProceduralSky" id=6] +sky_top_color = Color( 1, 1, 1, 1 ) +sky_horizon_color = Color( 0.721569, 0.721569, 0.721569, 1 ) + +[sub_resource type="Environment" id=5] +background_mode = 2 +background_sky = SubResource( 6 ) +background_color = Color( 0.752941, 0.752941, 0.752941, 1 ) +ssao_enabled = true +ssao_radius = 15.99 +ssao_intensity = 3.14 +ssao_bias = 0.455 +ssao_edge_sharpness = 0.0 + +[sub_resource type="BoxShape" id=8] +extents = Vector3( 100, 1, 400 ) + +[node name="rover_game" type="Spatial"] +script = ExtResource( 6 ) + +[node name="RoverGame" parent="." instance=ExtResource( 4 )] + +[node name="rover" parent="." instance=ExtResource( 1 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.04923, 50 ) +mass = 2.0 + +[node name="rover_camera" type="Camera" parent="."] +transform = Transform( -4.37114e-08, 0.866025, -0.5, 0, 0.5, 0.866025, 1, 3.78552e-08, -2.18557e-08, -34.343, 66.514, 50 ) +current = true +script = ExtResource( 5 ) + +[node name="collection_area" type="Area" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.988 ) +collision_layer = 0 +collision_mask = 32 + +[node name="CollisionShape" type="CollisionShape" parent="collection_area"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.0199232 ) +shape = SubResource( 7 ) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 5 ) + +[node name="Floor" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) + +[node name="CollisionShape" type="CollisionShape" parent="Floor"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.172523, 0.157974, 349.242 ) +shape = SubResource( 8 ) + +[node name="Timer" type="Timer" parent="."] +wait_time = 60.0 +one_shot = true +autostart = true + +[node name="UI" type="CanvasLayer" parent="."] + +[node name="Control" type="Control" parent="UI"] +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="Panel" type="Panel" parent="UI/Control"] +anchor_right = 1.0 +margin_bottom = 44.0 + +[node name="progress_bar" type="ProgressBar" parent="UI/Control/Panel"] +unique_name_in_owner = true +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -393.0 +margin_right = 393.0 +margin_bottom = 43.0 + +[node name="spawn locations" type="Spatial" parent="."] + +[node name="spawn_location" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 72.8999 ) + +[node name="spawn_location2" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1474, 0, 86.0569 ) + +[node name="spawn_location3" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 18.2501, 0, 95.3941 ) + +[node name="spawn_location4" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.749908, 0, 103.394 ) + +[node name="spawn_location5" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.2501, 0, 78.3941 ) + +[node name="spawn_location6" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17.7966, 0, 55.7584 ) + +[node name="spawn_location7" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -23.0892, 0, 38.7815 ) + +[node name="spawn_location8" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -23.0892, 0, 38.7815 ) + +[node name="spawn_location9" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 9.46336, 0, 135.092 ) + +[node name="spawn_location10" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.483337, 0, 158.441 ) + +[node name="spawn_location11" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19.4833, 0, 182.441 ) + +[node name="spawn_location12" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -22.4983, 0, 220.83 ) + +[node name="spawn_location13" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.50166, 0, 220.83 ) + +[node name="spawn_location14" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -18.9689, 0, 237.892 ) + +[node name="spawn_location15" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.7439, 0, 291.772 ) + +[node name="spawn_location16" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 22.1147, 0, 283.915 ) + +[node name="spawn_location17" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27.9517, 0, 325.897 ) + +[node name="spawn_location18" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 13.1347, 0, 352.388 ) + +[node name="spawn_location19" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.1729, 0, 361.368 ) + +[node name="spawn_location20" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.60088, 0, 378.654 ) + +[node name="spawn_location21" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17.6247, 0, 374.164 ) + +[node name="spawn_location22" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17.6247, 0, 374.164 ) + +[node name="spawn_location23" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9.0909, 0, 404.921 ) + +[node name="spawn_location24" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -22.7855, 0, 420.86 ) + +[node name="spawn_location25" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.4789, 0, 436.351 ) + +[node name="spawn_location26" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.00888, 0, 453.862 ) + +[node name="spawn_location27" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.17516, 0, 438.147 ) + +[node name="spawn_location28" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 21.2167, 0, 457.005 ) + +[node name="spawn_location29" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.6042, 0, 469.802 ) + +[node name="spawn_location30" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 25.0332, 0, 496.517 ) + +[node name="spawn_location31" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 9.99167, 0, 513.355 ) + +[node name="spawn_location32" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -18.0709, 0, 527.049 ) + +[node name="spawn_location33" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -20.0709, 0, 545.049 ) + +[node name="spawn_location34" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -20.0709, 0, 545.049 ) + +[node name="spawn_location35" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 30.2172, 0, 526.865 ) + +[node name="spawn_location36" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 13.2172, 0, 528.865 ) + +[node name="spawn_location37" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.0904, 0, 605.195 ) + +[node name="spawn_location38" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.701813, 0, 602.725 ) + +[node name="spawn_location39" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0132, 0, 626.747 ) + +[node name="spawn_location40" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 24.8913, 0, 643.585 ) + +[node name="spawn_location41" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0132, 0, 664.688 ) + +[node name="spawn_location42" type="Position3D" parent="spawn locations" groups=["rock_spawn_location"]] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17.4828, 0, 603.399 ) + +[connection signal="area_entered" from="collection_area" to="." method="_on_collection_area_area_entered"] + +[editable path="RoverGame"] diff --git a/scripts/rock.gd b/scripts/rock.gd new file mode 100644 index 0000000..995efda --- /dev/null +++ b/scripts/rock.gd @@ -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 diff --git a/scripts/rover.gd b/scripts/rover.gd new file mode 100644 index 0000000..bd32f48 --- /dev/null +++ b/scripts/rover.gd @@ -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 diff --git a/scripts/rover_camera.gd b/scripts/rover_camera.gd new file mode 100644 index 0000000..cdba12d --- /dev/null +++ b/scripts/rover_camera.gd @@ -0,0 +1,8 @@ +extends Camera + + +func _ready(): + pass + +func _process(delta): + global_transform.origin.z = $"../rover".global_transform.origin.z diff --git a/scripts/rover_game.gd b/scripts/rover_game.gd new file mode 100644 index 0000000..cfb0d92 --- /dev/null +++ b/scripts/rover_game.gd @@ -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