Find a pair init

This commit is contained in:
GrandPLAY 2025-09-05 22:17:21 +03:00
commit 75603094bb
7 changed files with 133 additions and 61 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://yn1hkayub20t"
path="res://.godot/imported/back.png-9c1d1174dcba7f216de8d82a9ffb21e5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/find_a_couple/back.png"
dest_files=["res://.godot/imported/back.png-9c1d1174dcba7f216de8d82a9ffb21e5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

View file

@ -1,34 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://cignc2wdaxuro"] [gd_scene load_steps=3 format=3 uid="uid://b2u1412b6fugp"]
[ext_resource type="PackedScene" uid="uid://blfx4g52uaopo" path="res://scenes/find_a_couple/tile.tscn" id="1_hr0pl"] [ext_resource type="PackedScene" uid="uid://cignc2wdaxuro" path="res://scenes/find_a_couple/level_handler.tscn" id="1_hr0pl"]
[ext_resource type="PackedScene" uid="uid://blfx4g52uaopo" path="res://scenes/find_a_couple/tile.tscn" id="2_0am66"]
[node name="Control" type="Control"] [node name="Level" type="Node2D"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="."] [node name="Control" parent="." instance=ExtResource("1_hr0pl")]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
color = Color(0.787759, 0.787759, 0.787759, 1)
[node name="Label" type="Label" parent="."] [node name="Tile" parent="." instance=ExtResource("2_0am66")]
layout_mode = 0 position = Vector2(239, 223)
offset_right = 99.0
offset_bottom = 69.0
theme_override_font_sizes/font_size = 50
text = "1:00"
horizontal_alignment = 1
vertical_alignment = 1
justification_flags = 162
[node name="Button" parent="." instance=ExtResource("1_hr0pl")]
layout_mode = 0
offset_left = 519.0
offset_top = 298.0
offset_right = 669.0
offset_bottom = 448.0

View file

@ -0,0 +1,27 @@
[gd_scene format=3 uid="uid://cignc2wdaxuro"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
mouse_filter = 1
color = Color(0.787759, 0.787759, 0.787759, 1)
[node name="Label" type="Label" parent="."]
layout_mode = 0
offset_right = 99.0
offset_bottom = 69.0
theme_override_font_sizes/font_size = 50
text = "1:00"
horizontal_alignment = 1
vertical_alignment = 1
justification_flags = 162

View file

@ -1,16 +1,52 @@
extends Button extends Area2D
@onready var image := $Image signal tile_clicked(tile)
@export var front_texture: Texture2D # Изображение на лицевой стороне
@export var back_texture: Texture2D # Изображение на обратной стороне
@export var flip_duration: float = 0.3 # Длительность анимации переворота
@onready var sprite = $Sprite2D
@onready var timer = $Timer
var is_flipped: bool = false
var can_click: bool = true
# Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
pass # Replace with function body. sprite.texture = back_texture
func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
if not can_click: return
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
emit_signal ("tile_clicked", self)
flip_tile()
func flip_tile():
is_flipped = true
can_click = false
# Анимация переворота
var tween = create_tween()
tween.tween_property(self, "scale:x", 0.0, flip_duration/2)
tween.tween_callback(_change_texture)
tween.tween_property(self, "scale:x", 1.0, flip_duration/2)
timer.start()
func _change_texture():
sprite.texture = front_texture if is_flipped else back_texture
func hide_tile():
is_flipped = false
var tween = create_tween()
tween.tween_property(self, "scale:x", 0.0, flip_duration/2)
tween.tween_callback(_change_texture)
tween.tween_property(self, "scale:x", 1.0, flip_duration/2)
tween.tween_callback(_enable_click)
func _enable_click():
can_click = true
# Called every frame. 'delta' is the elapsed time since the previous frame. func _on_timer_timeout() -> void:
func _process(delta: float) -> void: hide_tile()
pass
func _on_pressed() -> void:
image.show()

View file

@ -1,28 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://blfx4g52uaopo"] [gd_scene load_steps=5 format=3 uid="uid://blfx4g52uaopo"]
[ext_resource type="Texture2D" uid="uid://bsj2xqsrkncfw" path="res://assets/find_a_couple/envelope.png" id="1_dgwjn"] [ext_resource type="Texture2D" uid="uid://bsj2xqsrkncfw" path="res://assets/find_a_couple/envelope.png" id="1_dgwjn"]
[ext_resource type="Script" uid="uid://c6slf3hspqeef" path="res://scenes/find_a_couple/tile.gd" id="1_kwys0"] [ext_resource type="Script" uid="uid://c6slf3hspqeef" path="res://scenes/find_a_couple/tile.gd" id="1_kwys0"]
[ext_resource type="Texture2D" uid="uid://yn1hkayub20t" path="res://assets/find_a_couple/back.png" id="2_npifk"]
[sub_resource type="AtlasTexture" id="AtlasTexture_kwys0"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_npifk"]
atlas = ExtResource("1_dgwjn") size = Vector2(102, 102)
region = Rect2(0, 0, 512, 512)
[node name="Button" type="Button"] [node name="Tile" type="Area2D"]
offset_left = 428.0
offset_top = 300.0
offset_right = 578.0
offset_bottom = 450.0
script = ExtResource("1_kwys0") script = ExtResource("1_kwys0")
front_texture = ExtResource("1_dgwjn")
back_texture = ExtResource("2_npifk")
[node name="Image" type="TextureRect" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false shape = SubResource("RectangleShape2D_npifk")
layout_mode = 0
offset_left = 25.0
offset_top = 25.0
offset_right = 125.0
offset_bottom = 125.0
texture = SubResource("AtlasTexture_kwys0")
expand_mode = 1
stretch_mode = 5
[connection signal="pressed" from="." to="." method="_on_pressed"] [node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("1_dgwjn")
[node name="Timer" type="Timer" parent="."]
one_shot = true
[connection signal="input_event" from="." to="." method="_on_input_event"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]