From 56fdb1ddcd88f30d8eaa104bee7eb41b64a53a5b Mon Sep 17 00:00:00 2001 From: copygirl Date: Tue, 13 Apr 2021 16:31:06 +0200 Subject: [PATCH] Redo pixel-perfect zoom & more Game now uses the default viewport instead of a separate one that's then drawn as a texture. This makes anything involving mouse position much easier to deal with. - Disable camera moving depending on cursor position - Start work on an "escape menu" with controls to join multiplayer sessions - Move player to scene, instanciate on start - Change application icon --- Camera.cs | 17 +++--- Cursor.cs | 5 +- Game.cs | 64 ++++++++++++++++++++++ GameScene.tscn | 122 ++++++++++++++++++++++++++++++------------ Player.tscn | 25 +++++++++ Viewport.cs | 55 ------------------- default_env.tres | 7 --- gfx/cursor.png | Bin 307 -> 12789 bytes gfx/cursor.png.import | 2 +- gfx/icon.png | Bin 3305 -> 22516 bytes gfx/icon.xcf | Bin 0 -> 39572 bytes project.godot | 5 +- 12 files changed, 188 insertions(+), 114 deletions(-) create mode 100644 Game.cs create mode 100644 Player.tscn delete mode 100644 Viewport.cs delete mode 100644 default_env.tres create mode 100644 gfx/icon.xcf diff --git a/Camera.cs b/Camera.cs index c036915..65f4cea 100644 --- a/Camera.cs +++ b/Camera.cs @@ -2,23 +2,20 @@ using Godot; public class Camera : Camera2D { - public int MaxDistance { get; } = 80; public Cursor Cursor { get; private set; } - private Vector2 _rawPosition = Vector2.Zero; - - public override void _Ready() + public override void _EnterTree() { Cursor = GetViewport().GetNode("Cursor"); } public override void _Process(float delta) { - var mousePos = GetTree().Root.GetMousePosition(); - var centerPos = OS.WindowSize / 2; - var target = !Cursor.Visible ? Vector2.Zero - : ((mousePos - centerPos) / 4).Clamped(MaxDistance) * 2; - _rawPosition = _rawPosition.LinearInterpolate(target, 0.05F).Round(); - Position = _rawPosition.Round(); + // TODO: Implement some kind of "zoom" mechanic? + // var mousePos = GetTree().Root.GetMousePosition(); + // var centerPos = OS.WindowSize / 2; + // var scale = ((Viewport)GetViewport()).Scale; + // Position = !Cursor.Visible ? Vector2.Zero + // : ((mousePos - centerPos) / scale).Clamped(MaxDistance) / 2; } } diff --git a/Cursor.cs b/Cursor.cs index 9f66c62..701490c 100644 --- a/Cursor.cs +++ b/Cursor.cs @@ -4,7 +4,6 @@ public class Cursor : Node2D { public override void _Ready() { - Visible = false; Input.SetMouseMode(Input.MouseMode.Hidden); } @@ -18,8 +17,6 @@ public class Cursor : Node2D public override void _Process(float delta) { - var viewport = (Viewport)GetViewport(); - var origin = viewport.CanvasTransform.origin; - Position = viewport.GetMousePosition() / viewport.Scale - origin; + Position = GetGlobalMousePosition(); } } diff --git a/Game.cs b/Game.cs new file mode 100644 index 0000000..cf2edf7 --- /dev/null +++ b/Game.cs @@ -0,0 +1,64 @@ +using Godot; +using System; + +public class Game : Node +{ + public Vector2 PreferredScreenSize { get; } = new Vector2(640, 360); + + [Export] public PackedScene Player { get; set; } + [Export] public PackedScene Block { get; set; } + + public override void _Ready() + { + GetTree().Connect("screen_resized", this, "OnWindowResized"); + OnWindowResized(); + + SpawnPlayer(); + SpawnBlocks(); + } + + private void OnWindowResized() + { + var viewport = GetViewport(); + + var scaleX = OS.WindowSize.x / PreferredScreenSize.x; + var scaleY = OS.WindowSize.y / PreferredScreenSize.y; + var scale = Math.Max(1, Mathf.RoundToInt(Mathf.Min(scaleX, scaleY))); + + viewport.Size = (OS.WindowSize / scale).Ceil(); + + // This prevents the viewport from being "squished" to fit the window. + // The difference is only a few pixels, but it results in distortion + // around the center horizontal and vertical lines of the screen. + viewport.SetAttachToScreenRect(new Rect2(0, 0, viewport.Size * scale)); + } + + private void SpawnPlayer() + { + var player = (Player)Player.Instance(); + player.Position = PreferredScreenSize / 2; + AddChild(player); + } + + private void SpawnBlocks() + { + void SpawnBlockAt(int x, int y) + { + var block = (Node2D)Block.Instance(); + block.Position = new Vector2(x, y); + AddChild(block); + } + + // Top and bottom. + for (var x = 16; x <= (int)PreferredScreenSize.x - 16; x += 16) { + SpawnBlockAt(x, 20); + SpawnBlockAt(x, (int)PreferredScreenSize.y - 20); + } + + // Left and right. + for (var y = 36; y <= (int)PreferredScreenSize.y - 36; y += 16) { + SpawnBlockAt(16, y); + SpawnBlockAt((int)PreferredScreenSize.x - 16, y); + } + } +} diff --git a/GameScene.tscn b/GameScene.tscn index 048609d..ee386ff 100644 --- a/GameScene.tscn +++ b/GameScene.tscn @@ -1,53 +1,105 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=6 format=2] -[ext_resource path="res://gfx/player.png" type="Texture" id=1] +[ext_resource path="res://Player.tscn" type="PackedScene" id=1] [ext_resource path="res://gfx/cursor.png" type="Texture" id=2] -[ext_resource path="res://Player.cs" type="Script" id=3] -[ext_resource path="res://Viewport.cs" type="Script" id=4] +[ext_resource path="res://Block.tscn" type="PackedScene" id=3] +[ext_resource path="res://Game.cs" type="Script" id=4] [ext_resource path="res://Cursor.cs" type="Script" id=5] -[ext_resource path="res://Camera.cs" type="Script" id=6] -[sub_resource type="CircleShape2D" id=1] -radius = 8.0 +[node name="Game" type="Node"] +script = ExtResource( 4 ) +Player = ExtResource( 1 ) +Block = ExtResource( 3 ) -[node name="Game" type="ViewportContainer"] -margin_right = 384.0 -margin_bottom = 216.0 +[node name="Cursor" type="Node2D" parent="."] +z_index = 4096 +script = ExtResource( 5 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="Cursor"] +texture = ExtResource( 2 ) + +[node name="HUD" type="CanvasLayer" parent="."] + +[node name="Menu" type="CenterContainer" parent="HUD"] +visible = false +anchor_right = 1.0 +anchor_bottom = 1.0 __meta__ = { -"_edit_lock_": true, "_edit_use_anchors_": false } -[node name="ViewportTexture" type="TextureRect" parent="."] -margin_right = 384.0 -margin_bottom = 216.0 +[node name="Panel" type="PanelContainer" parent="HUD/Menu"] +margin_left = 633.0 +margin_top = 353.0 +margin_right = 647.0 +margin_bottom = 367.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="HUD/Menu/Panel"] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 175.0 +margin_bottom = 113.0 __meta__ = { -"_edit_lock_": true +"_edit_use_anchors_": false } -[node name="Viewport" type="Viewport" parent="."] -size = Vector2( 640, 360 ) -handle_input_locally = false -render_target_v_flip = true -render_target_update_mode = 3 -script = ExtResource( 4 ) +[node name="Label" type="Label" parent="HUD/Menu/Panel/VBoxContainer"] +margin_right = 168.0 +margin_bottom = 14.0 +text = "Menu" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} -[node name="Cursor" type="Node2D" parent="Viewport"] -script = ExtResource( 5 ) +[node name="HSeparator" type="HSeparator" parent="HUD/Menu/Panel/VBoxContainer"] +margin_top = 18.0 +margin_right = 168.0 +margin_bottom = 22.0 -[node name="Sprite" type="Sprite" parent="Viewport/Cursor"] -texture = ExtResource( 2 ) +[node name="StartServer" type="Button" parent="HUD/Menu/Panel/VBoxContainer"] +margin_top = 26.0 +margin_right = 168.0 +margin_bottom = 46.0 +text = "Start Server" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HBoxContainer2" type="HBoxContainer" parent="HUD/Menu/Panel/VBoxContainer"] +margin_top = 50.0 +margin_right = 168.0 +margin_bottom = 74.0 + +[node name="Address" type="LineEdit" parent="HUD/Menu/Panel/VBoxContainer/HBoxContainer2"] +margin_right = 100.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 100, 0 ) +caret_blink = true -[node name="Player" type="KinematicBody2D" parent="Viewport"] -position = Vector2( 320, 180 ) -script = ExtResource( 3 ) +[node name="Connect" type="Button" parent="HUD/Menu/Panel/VBoxContainer/HBoxContainer2"] +margin_left = 104.0 +margin_right = 168.0 +margin_bottom = 24.0 +text = "Connect" -[node name="Camera2D" type="Camera2D" parent="Viewport/Player"] -current = true -script = ExtResource( 6 ) +[node name="Disconnect" type="Button" parent="HUD/Menu/Panel/VBoxContainer"] +visible = false +margin_top = 78.0 +margin_right = 168.0 +margin_bottom = 98.0 +text = "Disconnect" -[node name="CircleShape" type="CollisionShape2D" parent="Viewport/Player"] -shape = SubResource( 1 ) +[node name="HSeparator2" type="HSeparator" parent="HUD/Menu/Panel/VBoxContainer"] +margin_top = 78.0 +margin_right = 168.0 +margin_bottom = 82.0 -[node name="Sprite" type="Sprite" parent="Viewport/Player"] -texture = ExtResource( 1 ) +[node name="BackToGame" type="Button" parent="HUD/Menu/Panel/VBoxContainer"] +margin_top = 86.0 +margin_right = 168.0 +margin_bottom = 106.0 +text = "Back to Game" diff --git a/Player.tscn b/Player.tscn new file mode 100644 index 0000000..0f070aa --- /dev/null +++ b/Player.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Camera.cs" type="Script" id=1] +[ext_resource path="res://gfx/player.png" type="Texture" id=2] +[ext_resource path="res://Player.cs" type="Script" id=3] + +[sub_resource type="CircleShape2D" id=1] +radius = 8.0 + +[node name="Player" type="KinematicBody2D"] +position = Vector2( 640, 360 ) +script = ExtResource( 3 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Camera2D" type="Camera2D" parent="."] +current = true +script = ExtResource( 1 ) + +[node name="CircleShape" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) diff --git a/Viewport.cs b/Viewport.cs deleted file mode 100644 index 4b8667e..0000000 --- a/Viewport.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Godot; -using System; - -public class Viewport : Godot.Viewport -{ - public TextureRect ViewportTexture { get; private set; } - public Vector2 DefaultSize { get; private set; } - public int Scale { get; private set; } - - public override void _Ready() - { - ViewportTexture = GetNode("../ViewportTexture"); - ViewportTexture.Texture = GetTexture(); - GetTree().Root.Connect("size_changed", this, "OnWindowResized"); - - RenderDirectToScreen = false; - DefaultSize = Size; - - OnWindowResized(); - SpawnBlocks(); - } - - private void OnWindowResized() - { - var windowSize = GetTree().Root.Size; - Scale = Math.Max(1, Mathf.RoundToInt(Mathf.Min( - OS.WindowSize.x / DefaultSize.x, - OS.WindowSize.y / DefaultSize.y))); - Size = windowSize / Scale; - ViewportTexture.RectScale = Vector2.One * Scale; - } - - private void SpawnBlocks() - { - var blockScene = GD.Load("res://Block.tscn"); - void SpawnBlockAt(int x, int y) - { - var block = (Node2D)blockScene.Instance(); - block.Position = new Vector2(x, y); - AddChild(block); - } - - // Top and bottom. - for (var x = 16; x <= (int)DefaultSize.x - 16; x += 16) { - SpawnBlockAt(x, 20); - SpawnBlockAt(x, (int)DefaultSize.y - 20); - } - - // Left and right. - for (var y = 36; y <= (int)DefaultSize.y - 36; y += 16) { - SpawnBlockAt(16, y); - SpawnBlockAt((int)DefaultSize.x - 16, y); - } - } -} diff --git a/default_env.tres b/default_env.tres deleted file mode 100644 index 20207a4..0000000 --- a/default_env.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="Environment" load_steps=2 format=2] - -[sub_resource type="ProceduralSky" id=1] - -[resource] -background_mode = 2 -background_sky = SubResource( 1 ) diff --git a/gfx/cursor.png b/gfx/cursor.png index 12b1922f2c329f11b74244be3ccf05ab75ca2ead..f6d3a751051f6430749b2148b43e469178618423 100644 GIT binary patch literal 12789 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 literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZ~dIowH(k6a4fNJJ>x;Tbd_%H1V6gpzS;Z*$JdpTEzY2N3}XO`GF?*4YK-nQ=D zubl;d9j7@k^i;gyIh`bP=xFkO*3^SJUX{B~E)+>?u#oVXoHU_&ruUJ9FKQb?b_5)0 zk}fo;vQ^oncV20IOzRxJt<2_+624Sh&)pi3D%UHx3vIVCg!05xxKEdT%j diff --git a/gfx/cursor.png.import b/gfx/cursor.png.import index ce939d3..225c81f 100644 --- a/gfx/cursor.png.import +++ b/gfx/cursor.png.import @@ -20,7 +20,7 @@ compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 -flags/filter=true +flags/filter=false flags/mipmaps=false flags/anisotropic=false flags/srgb=2 diff --git a/gfx/icon.png b/gfx/icon.png index c98fbb601c83c81ec8c22b1dba7d1d57c62b323c..2f783d6ab9d0b58763f0c9403a6ffe4e69e8d982 100644 GIT binary patch literal 22516 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 diff --git a/gfx/icon.xcf b/gfx/icon.xcf new file mode 100644 index 0000000000000000000000000000000000000000..f9ada09ac848449453173cd7180d9896215a7ac5 GIT binary patch literal 39572 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 literal 0 HcmV?d00001 diff --git a/project.godot b/project.godot index ee2ffa5..60508e5 100644 --- a/project.godot +++ b/project.godot @@ -28,7 +28,7 @@ config/icon="res://gfx/icon.png" window/size/width=1280 window/size/height=720 -window/stretch/aspect="expand" +window/stretch/mode="viewport" [gdnative] @@ -82,4 +82,5 @@ move_jump={ [rendering] quality/2d/use_pixel_snap=true -environment/default_environment="res://default_env.tres" +quality/filters/use_nearest_mipmap_filter=true +quality/dynamic_fonts/use_oversampling=false