diff options
Diffstat (limited to 'game/src/GameSession')
-rw-r--r-- | game/src/GameSession/MapView.tscn | 2 | ||||
-rw-r--r-- | game/src/GameSession/Minimap.gd | 15 | ||||
-rw-r--r-- | game/src/GameSession/RectangularCamera.gd | 24 |
3 files changed, 40 insertions, 1 deletions
diff --git a/game/src/GameSession/MapView.tscn b/game/src/GameSession/MapView.tscn index 4650acb..63d16ef 100644 --- a/game/src/GameSession/MapView.tscn +++ b/game/src/GameSession/MapView.tscn @@ -19,7 +19,7 @@ _camera = NodePath("MapCamera") _map_mesh_instance = NodePath("MapMeshInstance") [node name="MapCamera" type="Camera3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 1, 1) +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 1, 0) [node name="MapMeshInstance" type="MeshInstance3D" parent="."] transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0) diff --git a/game/src/GameSession/Minimap.gd b/game/src/GameSession/Minimap.gd new file mode 100644 index 0000000..4bf028b --- /dev/null +++ b/game/src/GameSession/Minimap.gd @@ -0,0 +1,15 @@ +extends Control + + +var MouseInside: bool = false + +func _process(delta): + if MouseInside: + print(get_local_mouse_position()) + +func _on_mouse_entered(): + MouseInside = true + + +func _on_mouse_exited(): + MouseInside = false diff --git a/game/src/GameSession/RectangularCamera.gd b/game/src/GameSession/RectangularCamera.gd new file mode 100644 index 0000000..55deb1d --- /dev/null +++ b/game/src/GameSession/RectangularCamera.gd @@ -0,0 +1,24 @@ +extends Control + + +@export var pos_x = 100.0 +@export var pos_y = 100.0 +@export var zoom_x = 10 +@export var zoom_y = 10 +@onready var _frame: TextureRect = $"../TextureRect" + +var RectangularCamera = Rect2(pos_x,pos_y,zoom_x,zoom_y) + +func _draw() -> void: + draw_rect(RectangularCamera,Color.BLACK,false,-1) + +func _on_map_view_map_view_camera_change(camera_position): + + zoom_x = camera_position.y*(_frame.size.x/20)*1.77 + zoom_y = camera_position.y*(_frame.size.y/20)*1.77 + + pos_x = camera_position.x*(_frame.size.x/20) + _frame.size.x/2 - zoom_x/2 # + _frame.size.x/2 - zoom_x/2 - Translation from camera_position.x to pos_x (i.e. 0px for center on camera_pos -> 175px for center on rect_camera) + pos_y = camera_position.z*(_frame.size.y/10) + _frame.size.y/2 - zoom_y/2 # + _frame.size.y/2 - zoom_y/2 - Translation from camera_position.y to pos_y (i.e. 0px for center on camera_pos -> 87.5px for center on rect_camera) + + RectangularCamera = Rect2(pos_x,pos_y,zoom_x,zoom_y) + queue_redraw() |