camera control
This commit is contained in:
parent
0d077ce1a0
commit
1e23e73995
55
main.tscn
55
main.tscn
|
@ -1,11 +1,49 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://c6omib6txy3qh"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://c6omib6txy3qh"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://brbtq46uk18gg" path="res://core/battlefield.tscn" id="1_x63ik"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqaabctftkakr" path="res://core/player.tscn" id="2_o4smw"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8uik6q4v35o3" path="res://tac/units/factory.tscn" id="2_wnc50"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_8ehhf"]
|
||||
script/source = "extends Camera2D
|
||||
|
||||
var raw_zoom := 0
|
||||
|
||||
func scroll(diff: Vector2):
|
||||
position -= diff
|
||||
|
||||
func change_zoom(diff: float):
|
||||
raw_zoom = clampf(raw_zoom + diff, -2, 2)
|
||||
|
||||
var z := pow(2.0, raw_zoom)
|
||||
zoom = Vector2(z, z)
|
||||
"
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_0auct"]
|
||||
script/source = "extends Control
|
||||
|
||||
signal scrolled(diff)
|
||||
signal zoomed(diff)
|
||||
|
||||
func _gui_input(event):
|
||||
if event is InputEventMouseMotion:
|
||||
if event.button_mask & MOUSE_BUTTON_LEFT:
|
||||
scrolled.emit(event.relative)
|
||||
if event is InputEventMouseButton and event.pressed:
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||
zoomed.emit(signf(event.factor))
|
||||
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||
zoomed.emit(-signf(event.factor))
|
||||
"
|
||||
|
||||
[node name="main" type="Node2D"]
|
||||
|
||||
[node name="camera" type="Camera2D" parent="."]
|
||||
position = Vector2(640, 360)
|
||||
current = true
|
||||
smoothing_enabled = true
|
||||
script = SubResource("GDScript_8ehhf")
|
||||
|
||||
[node name="battlefield" parent="." instance=ExtResource("1_x63ik")]
|
||||
|
||||
[node name="player1" parent="battlefield" instance=ExtResource("2_o4smw")]
|
||||
|
@ -25,3 +63,18 @@ position = Vector2(929, 429)
|
|||
player = NodePath("../player2")
|
||||
|
||||
[node name="ui" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="camcontrol" type="Control" parent="ui"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
mouse_force_pass_scroll_events = false
|
||||
script = SubResource("GDScript_0auct")
|
||||
|
||||
[connection signal="scrolled" from="ui/camcontrol" to="camera" method="scroll"]
|
||||
[connection signal="zoomed" from="ui/camcontrol" to="camera" method="change_zoom"]
|
||||
|
|
|
@ -49,6 +49,11 @@ run/main_scene="res://main.tscn"
|
|||
config/features=PackedStringArray("4.0", "Mobile")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=1280
|
||||
window/size/viewport_height=720
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="mobile"
|
||||
|
|
Loading…
Reference in a new issue