From 243198b83e051eaffe0fc5ce156aef9c4e891fb7 Mon Sep 17 00:00:00 2001 From: siyahas Date: Sun, 17 Nov 2024 18:02:23 +0300 Subject: [PATCH] 4.15 Scrolling Background --- scenes/background.tscn | 17 +++++++++++++++++ scenes/level.tscn | 5 ++++- scripts/background.gd | 24 ++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 scenes/background.tscn create mode 100644 scripts/background.gd diff --git a/scenes/background.tscn b/scenes/background.tscn new file mode 100644 index 0000000..3d9154e --- /dev/null +++ b/scenes/background.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=3 format=3 uid="uid://condfnt5uowdc"] + +[ext_resource type="Texture2D" uid="uid://bgdtrj7v0db2s" path="res://assets/textures/bg/Blue.png" id="1_388x7"] +[ext_resource type="Script" path="res://scripts/background.gd" id="1_f3g6g"] + +[node name="Background" type="ParallaxBackground"] +script = ExtResource("1_f3g6g") + +[node name="ParallaxLayer" type="ParallaxLayer" parent="."] +motion_mirroring = Vector2(640, 640) + +[node name="Sprite2D" type="Sprite2D" parent="ParallaxLayer"] +texture_repeat = 2 +texture = ExtResource("1_388x7") +centered = false +region_enabled = true +region_rect = Rect2(0, 0, 640, 640) diff --git a/scenes/level.tscn b/scenes/level.tscn index 9b96a8e..f38ff5a 100644 --- a/scenes/level.tscn +++ b/scenes/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://cchf5vmjp6ahj"] +[gd_scene load_steps=11 format=3 uid="uid://cchf5vmjp6ahj"] [ext_resource type="Script" path="res://scripts/level.gd" id="1_84g5v"] [ext_resource type="PackedScene" uid="uid://c7y3ileam1twx" path="res://scenes/player.tscn" id="2_d65cs"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://cnt3xr237kdqs" path="res://scenes/saw_trap.tscn" id="4_f5456"] [ext_resource type="PackedScene" uid="uid://cxfl4ogd53fb3" path="res://scenes/spike_ball_trap.tscn" id="5_8oo66"] [ext_resource type="PackedScene" uid="uid://c72cqu6ot5fc2" path="res://scenes/tile_map.tscn" id="6_8qvnr"] +[ext_resource type="PackedScene" uid="uid://condfnt5uowdc" path="res://scenes/background.tscn" id="7_fogjy"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_iyldn"] size = Vector2(947, 20) @@ -59,4 +60,6 @@ position = Vector2(199, 69) [node name="TileMapLayer" parent="." instance=ExtResource("6_8qvnr")] position = Vector2(160, 162) +[node name="Background" parent="." instance=ExtResource("7_fogjy")] + [connection signal="body_entered" from="Deathzone" to="." method="_on_death_zone_body_entered"] diff --git a/scripts/background.gd b/scripts/background.gd new file mode 100644 index 0000000..f94b220 --- /dev/null +++ b/scripts/background.gd @@ -0,0 +1,24 @@ +extends ParallaxBackground + +@export var bg_texture: CompressedTexture2D +@export var scroll_speed: float = 15 + +@onready var sprite_2d: Sprite2D = $ParallaxLayer/Sprite2D +# alternative implementation of scrolling effect using tween +var tween: Tween + +func _ready() -> void: + tween = create_tween().set_loops() + tween.tween_property(sprite_2d, "region_rect:position", Vector2(64,64), 64.0/scroll_speed) + tween.tween_property(sprite_2d, "region_rect:position", Vector2.ZERO, 0) + + + + + +## Animate sprite region using scroll_speed to give motion effect +#func _process(delta: float) -> void: + #sprite_2d.region_rect.position += delta * Vector2(scroll_speed, scroll_speed) + #if sprite_2d.region_rect.position >= Vector2(64,64): + #sprite_2d.region_rect.position = Vector2.ZERO + #pass