1
0
Fork 0

camera control

This commit is contained in:
Michaël Lemaire 2022-10-06 06:23:41 +02:00
parent 0d077ce1a0
commit 1e23e73995
2 changed files with 59 additions and 1 deletions

View file

@ -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"]

View file

@ -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"