the 180
This commit is contained in:
parent
6a31ab76b8
commit
3b56cd4c81
30 changed files with 352 additions and 173 deletions
34
elements/collectible.tscn
Normal file
34
elements/collectible.tscn
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bwxor1n3m4d4a"]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_f1obc"]
|
||||||
|
script/source = "extends Area3D
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready() -> void:
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_entered(body: Node3D) -> void:
|
||||||
|
print(body, \" !!\")
|
||||||
|
pass # Replace with function body.
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_lnm1h"]
|
||||||
|
radius = 1.0
|
||||||
|
|
||||||
|
[node name="Collectible" type="Area3D"]
|
||||||
|
script = SubResource("GDScript_f1obc")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("SphereShape3D_lnm1h")
|
||||||
|
|
||||||
|
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
|
||||||
|
radius = 1.0
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
|
@ -1,18 +1,17 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://dw0xl8644x166"]
|
[gd_scene load_steps=8 format=3 uid="uid://dw0xl8644x166"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ctjugvy1v3y6b" path="res://graphics/arrow.svg" id="1_4mbho"]
|
[ext_resource type="Texture2D" uid="uid://ctjugvy1v3y6b" path="res://graphics/arrow.svg" id="1_4mbho"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dmdbharecy448" path="res://sounds/gravity.ogg" id="2_5uwlw"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_wuka5"]
|
[sub_resource type="GDScript" id="GDScript_3yq1l"]
|
||||||
script/source = "extends HSlider
|
script/source = "extends Control
|
||||||
|
|
||||||
# Maybe change it so it's not a slider, but just a value that... depends on the mouse position?
|
const normal = 7
|
||||||
# Or a value that's only high if the user is pressing shift, à la catch the beat
|
const stronger = normal * 3
|
||||||
|
|
||||||
func _on_value_changed(value: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, value)
|
var grav = stronger if Input.is_key_pressed(KEY_SHIFT) else normal
|
||||||
|
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, grav)
|
||||||
func _on_focus_entered() -> void:
|
|
||||||
release_focus()
|
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_my602"]
|
[sub_resource type="GDScript" id="GDScript_my602"]
|
||||||
|
@ -30,24 +29,34 @@ func _input(ev: InputEvent) -> void:
|
||||||
if k == KEY_UP:
|
if k == KEY_UP:
|
||||||
direction = Vector3.UP
|
direction = Vector3.UP
|
||||||
self.rotation_degrees = -90
|
self.rotation_degrees = -90
|
||||||
|
$AudioStreamPlayer.pitch_scale = 1.05
|
||||||
elif k == KEY_LEFT:
|
elif k == KEY_LEFT:
|
||||||
direction = Vector3.LEFT
|
direction = Vector3.LEFT
|
||||||
self.rotation_degrees = -180
|
self.rotation_degrees = -180
|
||||||
|
$AudioStreamPlayer.pitch_scale = 1.02
|
||||||
elif k == KEY_RIGHT:
|
elif k == KEY_RIGHT:
|
||||||
direction = Vector3.RIGHT
|
direction = Vector3.RIGHT
|
||||||
self.rotation_degrees = 0
|
self.rotation_degrees = 0
|
||||||
|
$AudioStreamPlayer.pitch_scale = 0.98
|
||||||
elif k == KEY_DOWN:
|
elif k == KEY_DOWN:
|
||||||
direction = Vector3.DOWN
|
direction = Vector3.DOWN
|
||||||
self.rotation_degrees = 90
|
self.rotation_degrees = 90
|
||||||
PhysicsServer3D.area_set_param(
|
$AudioStreamPlayer.pitch_scale = 0.95
|
||||||
get_viewport().find_world_3d().space,
|
|
||||||
PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR,
|
|
||||||
direction
|
|
||||||
)
|
|
||||||
|
|
||||||
if $AnimationPlayer.is_playing():
|
if direction != PhysicsServer3D.area_get_param(
|
||||||
$AnimationPlayer.stop()
|
get_viewport().find_world_3d().space,
|
||||||
$AnimationPlayer.play(\"grow_fadeout\")
|
PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR
|
||||||
|
):
|
||||||
|
PhysicsServer3D.area_set_param(
|
||||||
|
get_viewport().find_world_3d().space,
|
||||||
|
PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR,
|
||||||
|
direction
|
||||||
|
)
|
||||||
|
|
||||||
|
if $AnimationPlayer.is_playing():
|
||||||
|
$AnimationPlayer.stop()
|
||||||
|
$AudioStreamPlayer.play()
|
||||||
|
$AnimationPlayer.play(\"grow_fadeout\")
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_6rwl4"]
|
[sub_resource type="Animation" id="Animation_6rwl4"]
|
||||||
|
@ -119,46 +128,33 @@ anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = SubResource("GDScript_3yq1l")
|
||||||
[node name="Strength" type="HSlider" parent="."]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = -1
|
|
||||||
anchor_left = 0.2
|
|
||||||
anchor_top = 0.9
|
|
||||||
anchor_right = 0.8
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_right = -0.00012207
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 0
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 1
|
|
||||||
min_value = 10.0
|
|
||||||
max_value = 40.0
|
|
||||||
step = 0.2
|
|
||||||
value = 10.0
|
|
||||||
script = SubResource("GDScript_wuka5")
|
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="Direction" type="TextureRect" parent="."]
|
[node name="Direction" type="TextureRect" parent="."]
|
||||||
self_modulate = Color(1, 1, 1, 0.501961)
|
self_modulate = Color(1, 1, 1, 0.501961)
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 8
|
||||||
anchor_right = 1.0
|
anchor_left = 0.5
|
||||||
anchor_bottom = 1.0
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -400.0
|
||||||
|
offset_top = -400.0
|
||||||
|
offset_right = 400.0
|
||||||
|
offset_bottom = 400.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
scale = Vector2(0.3, 0.3)
|
scale = Vector2(0.3, 0.3)
|
||||||
pivot_offset = Vector2(576, 324)
|
pivot_offset = Vector2(400, 400)
|
||||||
texture = ExtResource("1_4mbho")
|
texture = ExtResource("1_4mbho")
|
||||||
expand_mode = 3
|
|
||||||
stretch_mode = 5
|
|
||||||
script = SubResource("GDScript_my602")
|
script = SubResource("GDScript_my602")
|
||||||
metadata/_edit_use_anchors_ = true
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Direction"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Direction"]
|
||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_0w0ne")
|
"": SubResource("AnimationLibrary_0w0ne")
|
||||||
}
|
}
|
||||||
|
|
||||||
[connection signal="focus_entered" from="Strength" to="Strength" method="_on_focus_entered"]
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Direction"]
|
||||||
[connection signal="value_changed" from="Strength" to="Strength" method="_on_value_changed"]
|
stream = ExtResource("2_5uwlw")
|
||||||
|
volume_db = -6.0
|
||||||
|
mix_target = 2
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://gis4s061n422"]
|
|
||||||
|
|
||||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_llioc"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_shtld"]
|
|
||||||
size = Vector3(20, 20, 20)
|
|
||||||
|
|
||||||
[node name="Platform" type="RigidBody3D"]
|
|
||||||
axis_lock_linear_x = true
|
|
||||||
axis_lock_linear_y = true
|
|
||||||
axis_lock_linear_z = true
|
|
||||||
axis_lock_angular_x = true
|
|
||||||
axis_lock_angular_y = true
|
|
||||||
axis_lock_angular_z = true
|
|
||||||
physics_material_override = SubResource("PhysicsMaterial_llioc")
|
|
||||||
gravity_scale = 0.0
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
|
||||||
shape = SubResource("BoxShape3D_shtld")
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="."]
|
|
||||||
use_collision = true
|
|
||||||
size = Vector3(20, 20, 20)
|
|
|
@ -4,11 +4,19 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://df5m716pd6mej" path="res://elements/sphere.tscn" id="2_ophnk"]
|
[ext_resource type="PackedScene" uid="uid://df5m716pd6mej" path="res://elements/sphere.tscn" id="2_ophnk"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_bnqcw"]
|
[sub_resource type="GDScript" id="GDScript_bnqcw"]
|
||||||
script/source = "extends Node
|
script/source = "extends Node3D
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
#if $Sphere.position.y < -2:
|
||||||
|
# $Sphere.position.y = 0
|
||||||
|
$SpotLightMain.position = $Sphere.position + Vector3(0, 5, 0)
|
||||||
|
$SpotLightTop.position = $Sphere.position
|
||||||
|
$SpotLightLeft.position = $Sphere.position
|
||||||
|
$SpotLightRight.position = $Sphere.position
|
||||||
|
$SpotLightBottom.position = $Sphere.position
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
## Keep the ball at the center of the camera, at a distance
|
## Keep the ball at the center of the camera, at a distance
|
||||||
$Camera.position = $Sphere.position + Vector3(0, 0, 20)
|
$Camera.position = $Sphere.position + Vector3(0, 0, 15)
|
||||||
|
|
||||||
## Angle of the camera, so the player can see where the ball is going
|
## Angle of the camera, so the player can see where the ball is going
|
||||||
var velocity: Vector3 = $Sphere.linear_velocity
|
var velocity: Vector3 = $Sphere.linear_velocity
|
||||||
|
@ -25,7 +33,7 @@ func _process(delta: float) -> void:
|
||||||
$Camera.fov = default_fov + (total_velocity / 12)
|
$Camera.fov = default_fov + (total_velocity / 12)
|
||||||
"
|
"
|
||||||
|
|
||||||
[node name="Player" type="Node"]
|
[node name="Player" type="Node3D"]
|
||||||
script = SubResource("GDScript_bnqcw")
|
script = SubResource("GDScript_bnqcw")
|
||||||
|
|
||||||
[node name="Gravity" parent="." instance=ExtResource("1_h0h2o")]
|
[node name="Gravity" parent="." instance=ExtResource("1_h0h2o")]
|
||||||
|
@ -33,3 +41,25 @@ script = SubResource("GDScript_bnqcw")
|
||||||
[node name="Sphere" parent="." instance=ExtResource("2_ophnk")]
|
[node name="Sphere" parent="." instance=ExtResource("2_ophnk")]
|
||||||
|
|
||||||
[node name="Camera" type="Camera3D" parent="."]
|
[node name="Camera" type="Camera3D" parent="."]
|
||||||
|
current = true
|
||||||
|
|
||||||
|
[node name="SpotLightMain" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
|
||||||
|
spot_range = 55.0
|
||||||
|
spot_angle = 20.0
|
||||||
|
|
||||||
|
[node name="SpotLightTop" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
|
||||||
|
spot_range = 50.0
|
||||||
|
|
||||||
|
[node name="SpotLightLeft" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0)
|
||||||
|
spot_range = 50.0
|
||||||
|
|
||||||
|
[node name="SpotLightRight" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
|
||||||
|
spot_range = 50.0
|
||||||
|
|
||||||
|
[node name="SpotLightBottom" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
|
||||||
|
spot_range = 50.0
|
||||||
|
|
30
elements/ring.tscn
Normal file
30
elements/ring.tscn
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cpm3laywhlbq5"]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_86vhg"]
|
||||||
|
script/source = "extends CSGTorus3D
|
||||||
|
|
||||||
|
var collected = false
|
||||||
|
|
||||||
|
func _on_area_3d_body_entered(body: Node3D) -> void:
|
||||||
|
if collected == false and body.name == \"Sphere\":
|
||||||
|
print(\"YES \", body)
|
||||||
|
collected = true
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_tgirv"]
|
||||||
|
radius = 4.0
|
||||||
|
|
||||||
|
[node name="Ring" type="CSGTorus3D"]
|
||||||
|
use_collision = true
|
||||||
|
inner_radius = 4.0
|
||||||
|
outer_radius = 8.0
|
||||||
|
sides = 16
|
||||||
|
ring_sides = 8
|
||||||
|
script = SubResource("GDScript_86vhg")
|
||||||
|
|
||||||
|
[node name="Area3D" type="Area3D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||||
|
shape = SubResource("CylinderShape3D_tgirv")
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="Area3D" to="." method="_on_area_3d_body_entered"]
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://df5m716pd6mej"]
|
[gd_scene load_steps=10 format=3 uid="uid://df5m716pd6mej"]
|
||||||
|
|
||||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_vumbr"]
|
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_vumbr"]
|
||||||
bounce = 0.8
|
bounce = 0.2
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_rvq6k"]
|
[sub_resource type="GDScript" id="GDScript_rvq6k"]
|
||||||
script/source = "extends RigidBody3D
|
script/source = "extends RigidBody3D
|
||||||
|
@ -46,7 +46,7 @@ func _ready() -> void:
|
||||||
player.play()
|
player.play()
|
||||||
|
|
||||||
func handleMusicWithVelocity(velocity: float, delta: float) -> void:
|
func handleMusicWithVelocity(velocity: float, delta: float) -> void:
|
||||||
var instruments_needed = floor(velocity / 10)
|
var instruments_needed = floor(velocity / 7)
|
||||||
var instruments_playing = stream_players.filter(func(p: AudioStreamPlayer): return p.volume_db > -50)
|
var instruments_playing = stream_players.filter(func(p: AudioStreamPlayer): return p.volume_db > -50)
|
||||||
|
|
||||||
for index_p in len(instruments_playing):
|
for index_p in len(instruments_playing):
|
||||||
|
@ -74,16 +74,19 @@ func _process(delta: float) -> void:
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xfgrm"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_xfgrm"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_ggbpc"]
|
[sub_resource type="Gradient" id="Gradient_bgp4x"]
|
||||||
colors = PackedColorArray(0.979416, 0, 0.376508, 1, 0, 0.583757, 0.65245, 1)
|
colors = PackedColorArray(0.942957, 7.89344e-06, 0.597148, 1, 0, 0.9912, 0.9912, 1)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_vxsyc"]
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_5d6uk"]
|
||||||
gradient = SubResource("Gradient_ggbpc")
|
gradient = SubResource("Gradient_bgp4x")
|
||||||
fill_from = Vector2(0.490476, 0)
|
fill_from = Vector2(0.504951, 0.00495049)
|
||||||
fill_to = Vector2(0.504762, 1)
|
fill_to = Vector2(0.549505, 1)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_14eku"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qcgmu"]
|
||||||
albedo_texture = SubResource("GradientTexture2D_vxsyc")
|
albedo_texture = SubResource("GradientTexture2D_5d6uk")
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_bor8g"]
|
||||||
|
material = SubResource("StandardMaterial3D_qcgmu")
|
||||||
|
|
||||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4tofj"]
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4tofj"]
|
||||||
direction = Vector3(0, 0, 0)
|
direction = Vector3(0, 0, 0)
|
||||||
|
@ -96,17 +99,17 @@ radial_segments = 8
|
||||||
rings = 4
|
rings = 4
|
||||||
|
|
||||||
[node name="Sphere" type="RigidBody3D"]
|
[node name="Sphere" type="RigidBody3D"]
|
||||||
|
collision_priority = 100.0
|
||||||
axis_lock_linear_z = true
|
axis_lock_linear_z = true
|
||||||
physics_material_override = SubResource("PhysicsMaterial_vumbr")
|
physics_material_override = SubResource("PhysicsMaterial_vumbr")
|
||||||
|
contact_monitor = true
|
||||||
script = SubResource("GDScript_rvq6k")
|
script = SubResource("GDScript_rvq6k")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
shape = SubResource("SphereShape3D_xfgrm")
|
shape = SubResource("SphereShape3D_xfgrm")
|
||||||
|
|
||||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
radial_segments = 20
|
mesh = SubResource("SphereMesh_bor8g")
|
||||||
rings = 10
|
|
||||||
material = SubResource("StandardMaterial3D_14eku")
|
|
||||||
|
|
||||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="."]
|
[node name="GPUParticles3D" type="GPUParticles3D" parent="."]
|
||||||
amount = 16
|
amount = 16
|
||||||
|
|
9
idea.txt
9
idea.txt
|
@ -2,12 +2,11 @@ Theme: Gravity
|
||||||
|
|
||||||
3D, but played in 2D (think New Super Mario Bros)
|
3D, but played in 2D (think New Super Mario Bros)
|
||||||
2 controls:
|
2 controls:
|
||||||
With the mouse, change a slider to affect how much gravity is applied
|
|
||||||
With the arrow keys, change the direction of the gravity
|
With the arrow keys, change the direction of the gravity
|
||||||
1 objective: Bring the ball to the opposite end of the level
|
With the shift key, change how much the gravity is applied
|
||||||
|
1 objective: Bring the ball through all the rings
|
||||||
|
|
||||||
Music should be proportional to either the gravity or the ball's speed, or maybe how close to the objective it is, probably not that
|
Music is proportional to the ball's velocity
|
||||||
Each 2 levels should introduce a new mechanic like wind, moving platforms, bouncy walls...
|
Each level looks and sounds different
|
||||||
|
|
||||||
Maybe an apple from a tree, to fall on Newton's head? Not that it'd have an apple's physics, though...
|
|
||||||
Have score be Sonic-like, there's a timer and it's converted into score, also add to score if ball collects certain stuff
|
Have score be Sonic-like, there's a timer and it's converted into score, also add to score if ball collects certain stuff
|
40
index.tscn
40
index.tscn
|
@ -1,41 +1,3 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://ccgnnif026wb4"]
|
[gd_scene format=3 uid="uid://ccgnnif026wb4"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dujoplhd35kqg" path="res://level_base.tscn" id="1_ad0pp"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://gis4s061n422" path="res://elements/platform.tscn" id="2_g4sgl"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dw0xl8644x166" path="res://elements/gravity.tscn" id="3_80ler"]
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_oxyvh"]
|
|
||||||
script/source = "extends Node
|
|
||||||
|
|
||||||
func _input(ev: InputEvent) -> void:
|
|
||||||
pass
|
|
||||||
# if ev is InputEventKey and ev.is_pressed():
|
|
||||||
# var k = ev.keycode
|
|
||||||
# if k == KEY_UP or k == KEY_RIGHT or k == KEY_LEFT or k == KEY_DOWN:
|
|
||||||
# if k == KEY_UP:
|
|
||||||
# $LevelBase/Camera3D.rotation_degrees = Vector3i(0, 0, 0)
|
|
||||||
# elif k == KEY_LEFT:
|
|
||||||
# $LevelBase/Camera3D.rotation_degrees = Vector3i(0, 10, 0)
|
|
||||||
# elif k == KEY_RIGHT:
|
|
||||||
# $LevelBase/Camera3D.rotation_degrees = Vector3i(0, -10, 0)
|
|
||||||
# elif k == KEY_DOWN:
|
|
||||||
# $LevelBase/Camera3D.rotation_degrees = Vector3i(-10, 0, 0)
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="Game" type="Node"]
|
[node name="Game" type="Node"]
|
||||||
script = SubResource("GDScript_oxyvh")
|
|
||||||
|
|
||||||
[node name="LevelBase" parent="." instance=ExtResource("1_ad0pp")]
|
|
||||||
|
|
||||||
[node name="Platform" parent="LevelBase" instance=ExtResource("2_g4sgl")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -13.7254, 0)
|
|
||||||
|
|
||||||
[node name="Platform2" parent="LevelBase" instance=ExtResource("2_g4sgl")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.8526, -13.7254, 0)
|
|
||||||
|
|
||||||
[node name="Platform3" parent="LevelBase" instance=ExtResource("2_g4sgl")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.7108, -13.7254, 0)
|
|
||||||
|
|
||||||
[node name="Gravity" parent="." instance=ExtResource("3_80ler")]
|
|
||||||
|
|
||||||
[editable path="LevelBase"]
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://dujoplhd35kqg"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cnnvwotv33u1b" path="res://elements/player.tscn" id="1_ykskn"]
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_hbi5e"]
|
|
||||||
script/source = "extends Node3D
|
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
|
||||||
pass # Replace with function body.
|
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
pass
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_6pkua"]
|
|
||||||
sky_top_color = Color(0.693381, 0.747001, 0.821796, 1)
|
|
||||||
ground_bottom_color = Color(0.172348, 0.451084, 0.511099, 1)
|
|
||||||
ground_curve = 0.25992
|
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_4du2k"]
|
|
||||||
sky_material = SubResource("ProceduralSkyMaterial_6pkua")
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_jfl74"]
|
|
||||||
background_mode = 2
|
|
||||||
sky = SubResource("Sky_4du2k")
|
|
||||||
ambient_light_source = 3
|
|
||||||
ambient_light_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[node name="LevelBase" type="Node3D"]
|
|
||||||
script = SubResource("GDScript_hbi5e")
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = SubResource("Environment_jfl74")
|
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("1_ykskn")]
|
|
26
levels/base/environment.tscn
Normal file
26
levels/base/environment.tscn
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://ygvokp5f78i5"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_hs6gw"]
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_hyysp"]
|
||||||
|
gradient = SubResource("Gradient_hs6gw")
|
||||||
|
fill_from = Vector2(0.536082, 1)
|
||||||
|
fill_to = Vector2(0.536082, 0)
|
||||||
|
|
||||||
|
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_g3k38"]
|
||||||
|
panorama = SubResource("GradientTexture2D_hyysp")
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_du8e4"]
|
||||||
|
sky_material = SubResource("PanoramaSkyMaterial_g3k38")
|
||||||
|
radiance_size = 1
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_y0yoy"]
|
||||||
|
background_mode = 2
|
||||||
|
background_color = Color(0.758192, 0.758192, 0.758192, 1)
|
||||||
|
sky = SubResource("Sky_du8e4")
|
||||||
|
ambient_light_source = 3
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
reflected_light_source = 2
|
||||||
|
|
||||||
|
[node name="Environment" type="WorldEnvironment"]
|
||||||
|
environment = SubResource("Environment_y0yoy")
|
17
levels/base/level.tscn
Normal file
17
levels/base/level.tscn
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://b0mhosbyt1fit"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ygvokp5f78i5" path="res://levels/base/environment.tscn" id="1_n7fd8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cnnvwotv33u1b" path="res://elements/player.tscn" id="2_b00jj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpm3laywhlbq5" path="res://elements/ring.tscn" id="3_hel5x"]
|
||||||
|
|
||||||
|
[node name="Level" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="Environment" parent="." instance=ExtResource("1_n7fd8")]
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("2_b00jj")]
|
||||||
|
|
||||||
|
[node name="Ring" parent="." instance=ExtResource("3_hel5x")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.18355, 0)
|
||||||
|
|
||||||
|
[node name="Ring2" parent="." instance=ExtResource("3_hel5x")]
|
||||||
|
transform = Transform3D(-6.55671e-08, -1.5, 0, 1.5, -6.55671e-08, 0, 0, 0, 1.5, 10, 5, 0)
|
4
levels/base/material.tres
Normal file
4
levels/base/material.tres
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[gd_resource type="StandardMaterial3D" format=3 uid="uid://brwwlwb1rpro7"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
metallic = 1.0
|
BIN
music/forest.mmpz
Normal file
BIN
music/forest.mmpz
Normal file
Binary file not shown.
BIN
music/forest.mmpz.bak
Normal file
BIN
music/forest.mmpz.bak
Normal file
Binary file not shown.
BIN
music/forest/dong.ogg
Normal file
BIN
music/forest/dong.ogg
Normal file
Binary file not shown.
19
music/forest/dong.ogg.import
Normal file
19
music/forest/dong.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://dghw6a7i3adcu"
|
||||||
|
path="res://.godot/imported/dong.ogg-ffb15076d2b8a5ffc947d53d6a3fc115.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/dong.ogg"
|
||||||
|
dest_files=["res://.godot/imported/dong.ogg-ffb15076d2b8a5ffc947d53d6a3fc115.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
music/forest/dong2.ogg
Normal file
BIN
music/forest/dong2.ogg
Normal file
Binary file not shown.
19
music/forest/dong2.ogg.import
Normal file
19
music/forest/dong2.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://pn2b2f3egpck"
|
||||||
|
path="res://.godot/imported/dong2.ogg-58e0e1bd9d339e6c5a96259a33a583cf.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/dong2.ogg"
|
||||||
|
dest_files=["res://.godot/imported/dong2.ogg-58e0e1bd9d339e6c5a96259a33a583cf.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
music/forest/hihat-closed.ogg
Normal file
BIN
music/forest/hihat-closed.ogg
Normal file
Binary file not shown.
19
music/forest/hihat-closed.ogg.import
Normal file
19
music/forest/hihat-closed.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://bu4kmowmputnr"
|
||||||
|
path="res://.godot/imported/hihat-closed.ogg-2d3ac57a208e8a0283aa44d553fd6fd2.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/hihat-closed.ogg"
|
||||||
|
dest_files=["res://.godot/imported/hihat-closed.ogg-2d3ac57a208e8a0283aa44d553fd6fd2.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
music/forest/hihat-open.ogg
Normal file
BIN
music/forest/hihat-open.ogg
Normal file
Binary file not shown.
19
music/forest/hihat-open.ogg.import
Normal file
19
music/forest/hihat-open.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://cbgimkc8fi4q3"
|
||||||
|
path="res://.godot/imported/hihat-open.ogg-f90ba031f5e4f4f762a1d8e5e441132a.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/hihat-open.ogg"
|
||||||
|
dest_files=["res://.godot/imported/hihat-open.ogg-f90ba031f5e4f4f762a1d8e5e441132a.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
music/forest/kick.ogg
Normal file
BIN
music/forest/kick.ogg
Normal file
Binary file not shown.
19
music/forest/kick.ogg.import
Normal file
19
music/forest/kick.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://b5rl0nf2bawbr"
|
||||||
|
path="res://.godot/imported/kick.ogg-f4dc38db14482b78ded821894f1a2034.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/kick.ogg"
|
||||||
|
dest_files=["res://.godot/imported/kick.ogg-f4dc38db14482b78ded821894f1a2034.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
music/forest/synth.ogg
Normal file
BIN
music/forest/synth.ogg
Normal file
Binary file not shown.
19
music/forest/synth.ogg.import
Normal file
19
music/forest/synth.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://76mr4g8vfex2"
|
||||||
|
path="res://.godot/imported/synth.ogg-b5f3958a400c45e698e4b6e9bb35ef0c.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://music/forest/synth.ogg"
|
||||||
|
dest_files=["res://.godot/imported/synth.ogg-b5f3958a400c45e698e4b6e9bb35ef0c.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
|
@ -14,7 +14,7 @@ config/name="AlakajamEntry"
|
||||||
config/description="I'm Taevas, and this is my entry for the 21st edition of \"Alakajam!\", a gamejam that lasts for 48 hours that starts on 2025-02-21 19:00UTC
|
config/description="I'm Taevas, and this is my entry for the 21st edition of \"Alakajam!\", a gamejam that lasts for 48 hours that starts on 2025-02-21 19:00UTC
|
||||||
https://alakajam.com/21st-alakajam"
|
https://alakajam.com/21st-alakajam"
|
||||||
config/version="20250221.0"
|
config/version="20250221.0"
|
||||||
run/main_scene="res://index.tscn"
|
run/main_scene="res://levels/base/level.tscn"
|
||||||
config/features=PackedStringArray("4.3", "GL Compatibility")
|
config/features=PackedStringArray("4.3", "GL Compatibility")
|
||||||
boot_splash/show_image=false
|
boot_splash/show_image=false
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
@ -25,7 +25,14 @@ buses/default_bus_layout=""
|
||||||
|
|
||||||
[physics]
|
[physics]
|
||||||
|
|
||||||
|
3d/run_on_separate_thread=true
|
||||||
|
common/physics_ticks_per_second=120
|
||||||
|
common/max_physics_steps_per_frame=20
|
||||||
|
3d/physics_engine="GodotPhysics3D"
|
||||||
3d/default_gravity=10.0
|
3d/default_gravity=10.0
|
||||||
|
3d/solver/solver_iterations=40
|
||||||
|
3d/solver/default_contact_bias=1.0
|
||||||
|
common/physics_interpolation=true
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
BIN
sounds/gravity.ogg
Normal file
BIN
sounds/gravity.ogg
Normal file
Binary file not shown.
19
sounds/gravity.ogg.import
Normal file
19
sounds/gravity.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://dmdbharecy448"
|
||||||
|
path="res://.godot/imported/gravity.ogg-9d6ca77365cf8ba286821421798b18dc.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/gravity.ogg"
|
||||||
|
dest_files=["res://.godot/imported/gravity.ogg-9d6ca77365cf8ba286821421798b18dc.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
sounds/templateiguess.mmpz
Normal file
BIN
sounds/templateiguess.mmpz
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue