Compare commits
3 commits
0aebf6fa9b
...
75603094bb
Author | SHA1 | Date | |
---|---|---|---|
![]() |
75603094bb | ||
![]() |
35050d332a | ||
![]() |
7097b40992 |
14 changed files with 254 additions and 0 deletions
BIN
assets/find_a_couple/back.png
Normal file
BIN
assets/find_a_couple/back.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
34
assets/find_a_couple/back.png.import
Normal file
34
assets/find_a_couple/back.png.import
Normal 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
|
BIN
assets/find_a_couple/envelope.png
Normal file
BIN
assets/find_a_couple/envelope.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
34
assets/find_a_couple/envelope.png.import
Normal file
34
assets/find_a_couple/envelope.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bsj2xqsrkncfw"
|
||||||
|
path="res://.godot/imported/envelope.png-e1a72c8cc7c1c8b6699de8be171c2bcf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/find_a_couple/envelope.png"
|
||||||
|
dest_files=["res://.godot/imported/envelope.png-e1a72c8cc7c1c8b6699de8be171c2bcf.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
|
BIN
assets/find_a_couple/home.png
Normal file
BIN
assets/find_a_couple/home.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9 KiB |
34
assets/find_a_couple/home.png.import
Normal file
34
assets/find_a_couple/home.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dkhosb3l014nu"
|
||||||
|
path="res://.godot/imported/home.png-2752292748af7c14e83f6ea9f10c841a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/find_a_couple/home.png"
|
||||||
|
dest_files=["res://.godot/imported/home.png-2752292748af7c14e83f6ea9f10c841a.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
|
BIN
assets/find_a_couple/user.png
Normal file
BIN
assets/find_a_couple/user.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
34
assets/find_a_couple/user.png.import
Normal file
34
assets/find_a_couple/user.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bakxisrbvoy3e"
|
||||||
|
path="res://.godot/imported/user.png-dc728d288b223856966bafd84c0b8c54.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/find_a_couple/user.png"
|
||||||
|
dest_files=["res://.godot/imported/user.png-dc728d288b223856966bafd84c0b8c54.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
|
|
@ -11,6 +11,7 @@ config_version=5
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="DD"
|
config/name="DD"
|
||||||
|
run/main_scene="uid://bv4rxfc4hm6t7"
|
||||||
config/features=PackedStringArray("4.4", "Mobile")
|
config/features=PackedStringArray("4.4", "Mobile")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
|
11
scenes/find_a_couple/level.tscn
Normal file
11
scenes/find_a_couple/level.tscn
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://b2u1412b6fugp"]
|
||||||
|
|
||||||
|
[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="Level" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Control" parent="." instance=ExtResource("1_hr0pl")]
|
||||||
|
|
||||||
|
[node name="Tile" parent="." instance=ExtResource("2_0am66")]
|
||||||
|
position = Vector2(239, 223)
|
27
scenes/find_a_couple/level_handler.tscn
Normal file
27
scenes/find_a_couple/level_handler.tscn
Normal 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
|
52
scenes/find_a_couple/tile.gd
Normal file
52
scenes/find_a_couple/tile.gd
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
extends Area2D
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
func _on_timer_timeout() -> void:
|
||||||
|
hide_tile()
|
1
scenes/find_a_couple/tile.gd.uid
Normal file
1
scenes/find_a_couple/tile.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://c6slf3hspqeef
|
26
scenes/find_a_couple/tile.tscn
Normal file
26
scenes/find_a_couple/tile.tscn
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[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="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="RectangleShape2D" id="RectangleShape2D_npifk"]
|
||||||
|
size = Vector2(102, 102)
|
||||||
|
|
||||||
|
[node name="Tile" type="Area2D"]
|
||||||
|
script = ExtResource("1_kwys0")
|
||||||
|
front_texture = ExtResource("1_dgwjn")
|
||||||
|
back_texture = ExtResource("2_npifk")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource("RectangleShape2D_npifk")
|
||||||
|
|
||||||
|
[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"]
|
Loading…
Add table
Add a link
Reference in a new issue