mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-04 23:10:08 +01:00
Update Multitouch Cubes demo for Godot 4.1 (#989)
This commit is contained in:
@@ -1,29 +1,28 @@
|
|||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=4 format=3 uid="uid://csyb8ij530w1l"]
|
||||||
|
|
||||||
[ext_resource path="res://default_env.tres" type="Environment" id=1]
|
[ext_resource type="Environment" uid="uid://cpe7fpfvhiapa" path="res://default_env.tres" id="1"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id=1]
|
[sub_resource type="StandardMaterial3D" id="1"]
|
||||||
params_diffuse_mode = 1
|
diffuse_mode = 1
|
||||||
albedo_color = Color(0.149414, 0.796875, 0.569252, 1)
|
albedo_color = Color(0.149414, 0.796875, 0.569252, 1)
|
||||||
roughness = 0.0
|
roughness = 0.0
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id=2]
|
[sub_resource type="BoxMesh" id="2"]
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D"]
|
[node name="Node3D" type="Node3D"]
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(0.707107, 0, -0.707107, -0.353553, 0.866025, -0.353553, 0.612372, 0.5, 0.612372, 0, 0, 0)
|
transform = Transform3D(0.707107, 0, -0.707107, -0.353553, 0.866025, -0.353553, 0.612372, 0.5, 0.612372, 0, 0, 0)
|
||||||
material_override = SubResource( 1 )
|
material_override = SubResource("1")
|
||||||
mesh = SubResource( 2 )
|
mesh = SubResource("2")
|
||||||
surface_material_override/0 = null
|
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
transform = Transform3D(0.926535, 0.11439, -0.358396, 0.199614, 0.658013, 0.726067, 0.318884, -0.744267, 0.586839, 0, 0, 0)
|
transform = Transform3D(0.926535, 0.11439, -0.358396, 0.199614, 0.658013, 0.726067, 0.318884, -0.744267, 0.586839, 0, 0, 0)
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.08165e-12, 2.08165e-12, 3)
|
||||||
fov = 60.0
|
fov = 60.0
|
||||||
near = 0.1
|
near = 0.1
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = ExtResource( 1 )
|
environment = ExtResource("1")
|
||||||
|
|||||||
@@ -63,9 +63,9 @@ func _gui_input(event):
|
|||||||
# Touching finger dragged.
|
# Touching finger dragged.
|
||||||
var unit_drag = _px2unit(base_state[base_state.keys()[0]] - event.position)
|
var unit_drag = _px2unit(base_state[base_state.keys()[0]] - event.position)
|
||||||
if one_finger_rot_x:
|
if one_finger_rot_x:
|
||||||
target_node.global_rotate(Vector3.UP, deg2rad(180.0 * unit_drag.x))
|
target_node.global_rotate(Vector3.UP, deg_to_rad(180.0 * unit_drag.x))
|
||||||
if one_finger_rot_y:
|
if one_finger_rot_y:
|
||||||
target_node.global_rotate(Vector3.RIGHT, deg2rad(180.0 * unit_drag.y))
|
target_node.global_rotate(Vector3.RIGHT, deg_to_rad(180.0 * unit_drag.y))
|
||||||
# Since rotating around two axes, we have to reset the base constantly.
|
# Since rotating around two axes, we have to reset the base constantly.
|
||||||
curr_state[event.index] = event.position
|
curr_state[event.index] = event.position
|
||||||
base_state[event.index] = event.position
|
base_state[event.index] = event.position
|
||||||
|
|||||||
@@ -1,160 +1,125 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=3 uid="uid://didpkugc6cvxv"]
|
||||||
|
|
||||||
[ext_resource path="res://GestureArea.gd" type="Script" id=1]
|
[ext_resource type="Script" path="res://GestureArea.gd" id="1"]
|
||||||
[ext_resource path="res://CubeScene.tscn" type="PackedScene" id=2]
|
[ext_resource type="PackedScene" uid="uid://csyb8ij530w1l" path="res://CubeScene.tscn" id="2"]
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer"]
|
[node name="VBoxContainer" type="VBoxContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
size_flags_horizontal = 0
|
size_flags_horizontal = 0
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||||
offset_right = 1024.0
|
layout_mode = 2
|
||||||
offset_bottom = 298.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer"]
|
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer"]
|
||||||
offset_right = 510.0
|
layout_mode = 2
|
||||||
offset_bottom = 298.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
stretch = true
|
stretch = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource("1")
|
||||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||||
one_finger_rot_y = false
|
one_finger_rot_y = false
|
||||||
two_fingers_rot_z = false
|
two_fingers_rot_z = false
|
||||||
two_fingers_zoom = false
|
two_fingers_zoom = false
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/SubViewportContainer"]
|
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/SubViewportContainer"]
|
||||||
size = Vector2(510, 298)
|
own_world_3d = true
|
||||||
own_world = true
|
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
msaa = 2
|
size = Vector2i(574, 322)
|
||||||
hdr = false
|
render_target_update_mode = 4
|
||||||
usage = 3
|
|
||||||
render_target_update_mode = 3
|
|
||||||
|
|
||||||
[node name="Node3D" parent="HBoxContainer/SubViewportContainer/SubViewport" instance=ExtResource( 2 )]
|
[node name="Node3D" parent="HBoxContainer/SubViewportContainer/SubViewport" instance=ExtResource("2")]
|
||||||
|
|
||||||
[node name="Camera3D" parent="HBoxContainer/SubViewportContainer/SubViewport/Node3D" index="2"]
|
[node name="Camera3D" parent="HBoxContainer/SubViewportContainer/SubViewport/Node3D" index="2"]
|
||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="HBoxContainer/SubViewportContainer"]
|
[node name="Label" type="Label" parent="HBoxContainer/SubViewportContainer"]
|
||||||
offset_left = 7.0
|
layout_mode = 2
|
||||||
offset_top = 11.0
|
|
||||||
offset_right = 157.0
|
|
||||||
offset_bottom = 25.0
|
|
||||||
text = "One-finger rot around X"
|
text = "One-finger rot around X"
|
||||||
|
|
||||||
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer"]
|
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer"]
|
||||||
offset_left = 514.0
|
layout_mode = 2
|
||||||
offset_right = 1024.0
|
|
||||||
offset_bottom = 298.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
stretch = true
|
stretch = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource("1")
|
||||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||||
two_fingers_rot_z = false
|
two_fingers_rot_z = false
|
||||||
two_fingers_zoom = false
|
two_fingers_zoom = false
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/ViewportContainer2"]
|
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/ViewportContainer2"]
|
||||||
size = Vector2(510, 298)
|
own_world_3d = true
|
||||||
own_world = true
|
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
msaa = 2
|
size = Vector2i(574, 322)
|
||||||
hdr = false
|
render_target_update_mode = 4
|
||||||
usage = 3
|
|
||||||
render_target_update_mode = 3
|
|
||||||
|
|
||||||
[node name="Node3D" parent="HBoxContainer/ViewportContainer2/SubViewport" instance=ExtResource( 2 )]
|
[node name="Node3D" parent="HBoxContainer/ViewportContainer2/SubViewport" instance=ExtResource("2")]
|
||||||
|
|
||||||
[node name="Camera3D" parent="HBoxContainer/ViewportContainer2/SubViewport/Node3D" index="2"]
|
[node name="Camera3D" parent="HBoxContainer/ViewportContainer2/SubViewport/Node3D" index="2"]
|
||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="HBoxContainer/ViewportContainer2"]
|
[node name="Label2" type="Label" parent="HBoxContainer/ViewportContainer2"]
|
||||||
offset_left = 8.0
|
layout_mode = 2
|
||||||
offset_top = 11.0
|
|
||||||
offset_right = 196.0
|
|
||||||
offset_bottom = 25.0
|
|
||||||
text = "One-finger rot around X and Y"
|
text = "One-finger rot around X and Y"
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="."]
|
[node name="HBoxContainer2" type="HBoxContainer" parent="."]
|
||||||
offset_top = 302.0
|
layout_mode = 2
|
||||||
offset_right = 1024.0
|
|
||||||
offset_bottom = 600.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer2"]
|
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer2"]
|
||||||
offset_right = 510.0
|
layout_mode = 2
|
||||||
offset_bottom = 298.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
stretch = true
|
stretch = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource("1")
|
||||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||||
two_fingers_zoom = false
|
two_fingers_zoom = false
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/SubViewportContainer"]
|
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/SubViewportContainer"]
|
||||||
size = Vector2(510, 298)
|
own_world_3d = true
|
||||||
own_world = true
|
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
msaa = 2
|
size = Vector2i(574, 322)
|
||||||
hdr = false
|
render_target_update_mode = 4
|
||||||
usage = 3
|
|
||||||
render_target_update_mode = 3
|
|
||||||
|
|
||||||
[node name="Node3D" parent="HBoxContainer2/SubViewportContainer/SubViewport" instance=ExtResource( 2 )]
|
[node name="Node3D" parent="HBoxContainer2/SubViewportContainer/SubViewport" instance=ExtResource("2")]
|
||||||
|
|
||||||
[node name="Camera3D" parent="HBoxContainer2/SubViewportContainer/SubViewport/Node3D" index="2"]
|
[node name="Camera3D" parent="HBoxContainer2/SubViewportContainer/SubViewport/Node3D" index="2"]
|
||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="HBoxContainer2/SubViewportContainer"]
|
[node name="Label3" type="Label" parent="HBoxContainer2/SubViewportContainer"]
|
||||||
offset_left = 8.0
|
layout_mode = 2
|
||||||
offset_top = 9.0
|
|
||||||
offset_right = 236.0
|
|
||||||
offset_bottom = 23.0
|
|
||||||
text = "One-finger X/Y rot + two-finger Z rot"
|
text = "One-finger X/Y rot + two-finger Z rot"
|
||||||
|
|
||||||
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer2"]
|
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer2"]
|
||||||
offset_left = 514.0
|
layout_mode = 2
|
||||||
offset_right = 1024.0
|
|
||||||
offset_bottom = 298.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
stretch = true
|
stretch = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource("1")
|
||||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/ViewportContainer2"]
|
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/ViewportContainer2"]
|
||||||
size = Vector2(510, 298)
|
own_world_3d = true
|
||||||
own_world = true
|
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
msaa = 2
|
size = Vector2i(574, 322)
|
||||||
hdr = false
|
render_target_update_mode = 4
|
||||||
usage = 3
|
|
||||||
render_target_update_mode = 3
|
|
||||||
|
|
||||||
[node name="Node3D" parent="HBoxContainer2/ViewportContainer2/SubViewport" instance=ExtResource( 2 )]
|
[node name="Node3D" parent="HBoxContainer2/ViewportContainer2/SubViewport" instance=ExtResource("2")]
|
||||||
|
|
||||||
[node name="Camera3D" parent="HBoxContainer2/ViewportContainer2/SubViewport/Node3D" index="2"]
|
[node name="Camera3D" parent="HBoxContainer2/ViewportContainer2/SubViewport/Node3D" index="2"]
|
||||||
current = true
|
current = true
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="HBoxContainer2/ViewportContainer2"]
|
[node name="Label2" type="Label" parent="HBoxContainer2/ViewportContainer2"]
|
||||||
offset_left = 12.0
|
layout_mode = 2
|
||||||
offset_top = 9.0
|
|
||||||
offset_right = 279.0
|
|
||||||
offset_bottom = 23.0
|
|
||||||
text = "One-finger X/Y, two-finger Z + pinch"
|
text = "One-finger X/Y, two-finger Z + pinch"
|
||||||
|
|
||||||
[editable path="HBoxContainer/SubViewportContainer/SubViewport/Node3D"]
|
[editable path="HBoxContainer/SubViewportContainer/SubViewport/Node3D"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="Environment" format=2]
|
[gd_resource type="Environment" format=3 uid="uid://cpe7fpfvhiapa"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
ambient_light_color = Color( 0.307434, 0.362682, 0.539063, 1 )
|
ambient_light_color = Color(0.307434, 0.362682, 0.539063, 1)
|
||||||
|
|||||||
@@ -6,15 +6,16 @@
|
|||||||
; [section] ; section goes between []
|
; [section] ; section goes between []
|
||||||
; param=value ; assign values to parameters
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
config_version=4
|
config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Multitouch Cubes Demo "
|
config/name="Multitouch Cubes Demo "
|
||||||
config/description="Demo of multitouch input and different gestures using the touch API. This demo is meant to be used with a touch-enabled device such as a phone or tablet."
|
config/description="Demo of multitouch input and different gestures using the touch API. This demo is meant to be used with a touch-enabled device such as a phone or tablet."
|
||||||
run/main_scene="res://Main.tscn"
|
|
||||||
config/icon="res://icon.webp"
|
|
||||||
config/tags=PackedStringArray("demo", "input", "mobile", "official")
|
config/tags=PackedStringArray("demo", "input", "mobile", "official")
|
||||||
|
run/main_scene="res://Main.tscn"
|
||||||
|
config/features=PackedStringArray("4.1")
|
||||||
|
config/icon="res://icon.webp"
|
||||||
|
|
||||||
[input_devices]
|
[input_devices]
|
||||||
|
|
||||||
@@ -22,5 +23,6 @@ pointing/emulate_touch_from_mouse=true
|
|||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
textures/vram_compression/import_etc2_astc=true
|
||||||
environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1)
|
environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1)
|
||||||
environment/default_environment="res://default_env.tres"
|
environment/defaults/default_environment="res://default_env.tres"
|
||||||
|
|||||||
Reference in New Issue
Block a user