diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn index 145ed80..379a4bf 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn @@ -1,10 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://dmeb88jotqro6"] +[gd_scene load_steps=4 format=3 uid="uid://dmeb88jotqro6"] [ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_osa3n"] [ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="2_erhdx"] [ext_resource type="Script" path="res://src/framework/map/mark/ActivityMark.cs" id="3_m4jrh"] -[ext_resource type="Texture2D" uid="uid://civvcowt2wklr" path="res://resource/sprite/weapon/weapon0001/Weapon0001.png" id="4_wtntr"] -[ext_resource type="Texture2D" uid="uid://dto03bc2qbhnj" path="res://resource/sprite/shell/Shell0001.png" id="5_amyos"] [node name="Room1" type="TileMap"] tile_set = ExtResource("1_osa3n") @@ -52,13 +50,3 @@ Type = 5 ItemExpression = "0006" WaveNumber = 2 - -[node name="Sprite2D" type="Sprite2D" parent="."] -position = Vector2(61, 25) -rotation = -0.785398 -texture = ExtResource("4_wtntr") - -[node name="Sprite2D2" type="Sprite2D" parent="."] -position = Vector2(120, 51) -rotation = 0.785398 -texture = ExtResource("5_amyos") diff --git a/DungeonShooting_Godot/scene/test/TestOptimizeSprite.tscn b/DungeonShooting_Godot/scene/test/TestOptimizeSprite.tscn index f231e24..e13f283 100644 --- a/DungeonShooting_Godot/scene/test/TestOptimizeSprite.tscn +++ b/DungeonShooting_Godot/scene/test/TestOptimizeSprite.tscn @@ -11,22 +11,11 @@ [ext_resource type="Texture2D" uid="uid://yn8t7ovmt4gj" path="res://resource/sprite/weapon/gun1.png" id="9_mddgj"] [ext_resource type="Texture2D" uid="uid://5geiuvv6hyov" path="res://resource/sprite/weapon/gun2.png" id="10_rxwsh"] -[node name="TestOptimizeSprite" type="Node2D" node_paths=PackedStringArray("SubViewport", "ViewCamera", "Label")] +[node name="TestOptimizeSprite" type="Node2D" node_paths=PackedStringArray("Label")] script = ExtResource("1_rwuav") ImageList = Array[Texture2D]([ExtResource("2_qvs0g"), ExtResource("8_csd6d"), ExtResource("3_jejmg"), ExtResource("4_twsss"), ExtResource("5_bdcjp"), ExtResource("6_sqcu7"), ExtResource("7_w4iwy"), ExtResource("9_mddgj"), ExtResource("10_rxwsh")]) -SubViewport = NodePath("SubViewport") -ViewCamera = NodePath("SubViewport/Camera2D") Label = NodePath("CanvasLayer/Panel/Label") -[node name="SubViewport" type="SubViewport" parent="."] -transparent_bg = true -canvas_item_default_texture_filter = 0 -size = Vector2i(1024, 185) -render_target_update_mode = 4 - -[node name="Camera2D" type="Camera2D" parent="SubViewport"] -anchor_mode = 0 - [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="Panel" type="Panel" parent="CanvasLayer"] diff --git a/DungeonShooting_Godot/src/framework/map/image/ImageCanvas_Static.cs b/DungeonShooting_Godot/src/framework/map/image/ImageCanvas_Static.cs index 257daf5..8341a17 100644 --- a/DungeonShooting_Godot/src/framework/map/image/ImageCanvas_Static.cs +++ b/DungeonShooting_Godot/src/framework/map/image/ImageCanvas_Static.cs @@ -33,7 +33,7 @@ /// /// 渲染窗口大小 /// - public static Vector2 RenderViewportSize { get; private set; } + public static Vector2I RenderViewportSize { get; private set; } //预渲染队列 private static readonly Queue _queueItems = new Queue(); @@ -48,11 +48,20 @@ /// /// 初始化 viewport /// - public static void Init(SubViewport renderViewport) + public static void Init(Node root) { - RenderViewportSize = renderViewport.Size; - RenderViewport = renderViewport; - _viewportTexture = renderViewport.GetTexture(); + RenderViewportSize = new Vector2I(1024, 185); + RenderViewport = new SubViewport(); + RenderViewport.Size = RenderViewportSize; + RenderViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; + RenderViewport.TransparentBg = true; + RenderViewport.CanvasItemDefaultTextureFilter = Viewport.DefaultCanvasItemTextureFilter.Nearest; + var camera = new Camera2D(); + camera.AnchorMode = Camera2D.AnchorModeEnum.FixedTopLeft; + RenderViewport.AddChild(camera); + _viewportTexture = RenderViewport.GetTexture(); + + root.AddChild(RenderViewport); RenderingServer.FramePostDraw += OnFramePostDraw; } diff --git a/DungeonShooting_Godot/src/test/TestOptimizeSprite.cs b/DungeonShooting_Godot/src/test/TestOptimizeSprite.cs index 4300a60..fcb299b 100644 --- a/DungeonShooting_Godot/src/test/TestOptimizeSprite.cs +++ b/DungeonShooting_Godot/src/test/TestOptimizeSprite.cs @@ -4,15 +4,11 @@ { [Export()] public Texture2D[] ImageList; - [Export()] public SubViewport SubViewport; - - [Export()] public Camera2D ViewCamera; - [Export()] public Label Label; public override void _Ready() { - ImageCanvas.Init(SubViewport); + ImageCanvas.Init(GetTree().CurrentScene); ImageCanvas.MaxHandlerTime = 4; var scale = 2;