From b015bc2b5e5bd380d688d692dae0231040958cb9 Mon Sep 17 00:00:00 2001 From: cutekibry Date: Sun, 28 Jan 2024 09:17:56 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E7=AC=A6=E5=8F=B7=E5=A4=9A=E6=A0=B7=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bg/dynamic_bg/dynamic_bg_pattern/dynamic_bg_pattern.gd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bg/dynamic_bg/dynamic_bg_pattern/dynamic_bg_pattern.gd b/bg/dynamic_bg/dynamic_bg_pattern/dynamic_bg_pattern.gd index 07ed498..56f6834 100644 --- a/bg/dynamic_bg/dynamic_bg_pattern/dynamic_bg_pattern.gd +++ b/bg/dynamic_bg/dynamic_bg_pattern/dynamic_bg_pattern.gd @@ -5,8 +5,12 @@ var velocity : Vector2 func _ready(): - $Word1.set_word("=*"[randi_range(0, 1)]) - $Word2.set_word("DPb"[randi_range(0, 2)]) + if randi() % 2 == 1: + $Word1.set_word("=*"[randi_range(0, 1)]) + $Word2.set_word("DPb>"[randi_range(0, 2)]) + else: + $Word1.set_word("qd<"[randi_range(0, 2)]) + $Word2.set_word("=*"[randi_range(0, 1)]) func _process(delta): position += velocity * delta From 06ea783ec9e9d3c22fd402a2cdadcd7615745df9 Mon Sep 17 00:00:00 2001 From: cutekibry Date: Sun, 28 Jan 2024 09:18:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BD=BF=E7=AB=A0=E8=8A=82=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E4=B8=80=E5=85=B3=E4=BC=9A=E8=B7=B3=E5=88=B0=E4=B8=8B?= =?UTF-8?q?=E4=B8=80=E7=AB=A0=E8=8A=82=E7=9A=84=E5=85=B3=E5=8D=A1=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- levels/base_level/base_level.gd | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/levels/base_level/base_level.gd b/levels/base_level/base_level.gd index c35150d..1bf00ed 100644 --- a/levels/base_level/base_level.gd +++ b/levels/base_level/base_level.gd @@ -199,13 +199,14 @@ func _on_back_button_pressed(): queue_free() func _on_next_level_button_pressed(): - var base_level := BaseLevel.instantiate() - if lvl_id == len(DATA[chap_id]) - 1: - base_level.init(chap_id + 1, 0) + var level_menu := LevelMenu.instantiate() + level_menu.init(chap_id + 1, -1) + get_tree().root.add_child(level_menu) else: + var base_level := BaseLevel.instantiate() base_level.init(chap_id, lvl_id + 1) - get_tree().root.add_child(base_level) + get_tree().root.add_child(base_level) queue_free() func _on_replay_button_pressed(): From 844573d03f2fbac2bda15baa4929e891ddd0c4fd Mon Sep 17 00:00:00 2001 From: cutekibry Date: Sun, 28 Jan 2024 09:38:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20credits=EF=BC=88?= =?UTF-8?q?=E7=AE=80=E5=8D=95=E5=AE=9E=E7=8E=B0=EF=BC=89=E5=B9=B6=E4=BD=BF?= =?UTF-8?q?=E9=80=9A=E5=85=B3=E6=9C=80=E5=90=8E=E4=B8=80=E5=85=B3=E5=90=8E?= =?UTF-8?q?=E4=BC=9A=E8=B7=B3=E8=BD=AC=20credits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- levels/chapter_menu/level_menu/level_menu.gd | 7 +++++++ objects/credits/credits.tscn | 22 ++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 objects/credits/credits.tscn diff --git a/levels/chapter_menu/level_menu/level_menu.gd b/levels/chapter_menu/level_menu/level_menu.gd index 042134d..7d20717 100644 --- a/levels/chapter_menu/level_menu/level_menu.gd +++ b/levels/chapter_menu/level_menu/level_menu.gd @@ -8,6 +8,7 @@ const I_NUMBER = ["I","II","III","VI","V"] const LevelButton := preload("res://levels/chapter_menu/level_menu/level_button/level_button.tscn") const BaseLevel := preload("res://levels/base_level/base_level.tscn") +const Credits := preload("res://objects/credits/credits.tscn") # Called when the node enters the scene tree for the first time. @@ -18,6 +19,12 @@ const button_heigth : int = 50 func init(chap_id : int, lvl_num : int) -> void: #print("init?") + if chap_id == len(BaseLevel.instantiate().DATA): + add_child(Credits.instantiate()) + $Title.set_text("") + return + + if lvl_num == -1: lvl_num = len(BaseLevel.instantiate().DATA[chap_id]) diff --git a/objects/credits/credits.tscn b/objects/credits/credits.tscn new file mode 100644 index 0000000..c167d63 --- /dev/null +++ b/objects/credits/credits.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=2 format=3 uid="uid://cdu8yubd7fyvb"] + +[ext_resource type="FontFile" uid="uid://1000owdyvwfg" path="res://fonts/unifont-15.1.04.otf" id="1_re7ax"] + +[node name="Label" type="Label"] +custom_minimum_size = Vector2(480, 256) +offset_right = 40.0 +offset_bottom = 23.0 +theme_override_fonts/font = ExtResource("1_re7ax") +text = " + +[ Equal to P ] + +Created by 玩一个四字音游导致的 @ GGJ2024 + +ligen131 Tsukimaru + + Bunnycxk IssactheMouse + + +THANKS FOR PLAYING! ;-)" +horizontal_alignment = 1 From e7bc6348f0aeef8c3f082b22035c72b5b84b5247 Mon Sep 17 00:00:00 2001 From: ligen131 Date: Sun, 28 Jan 2024 09:52:43 +0800 Subject: [PATCH 4/4] Update README.md --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9f91feb..1eb45bb 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,29 @@ -
+![:3](=P3.png "Magic Cat") # Equal to P (=P) -![:3](=P3.png "Magic Cat") - -
+**Try our online demo at now!** A game made by Team 玩一个四字音游导致的 during [Global Game Jam](https://globalgamejam.org/) 2024. Participated [onsite](https://www.huodongxing.com/event/2732777803400?td=6303464850639) at [ChillyRoom](https://www.chillyroom.com/), Shenzhen, China. -- Coding: @cutekibry, @ligen131, @Bunnycxk -- Art: @IsaacTheMouse, @Bunnycxk -- Music: @cutekibry +- Coding: [@cutekibry](https://github.com/cutekibry), [@ligen131](https://github.com/ligen131), [@Bunnycxk](https://github.com/Bunnycxk) +- Art: [@IsaacTheMouse](https://github.com/IsaacTheMouse), [@Bunnycxk](https://github.com/Bunnycxk) +- Music: [@cutekibry](https://github.com/cutekibry) - Planning: everyone -## Description +## Introduction + +A puzzle game inspired by {Boolean expressions} =P + +Players solve the game by filling in different elements in the arithmetic expression, making the expression always true while also creating a smiley face emoticon with a part of the equation. ;-) + +由{布尔运算式}启发的解谜游戏 =P 玩家通过在算数式中填入不同的元素 ;-) 让表达式恒为真的同时 :-> 式子中的某个部分能够构成一个笑脸的颜文字。 + +## Demo -由{布尔运算式}启发的解谜游戏=P玩家通过在算数式中填入不同的元素;-)让表达式恒为真的同时:->式子中的某个部分能够构成一个笑脸的颜文字。 +The latest built artifacts can be found at [the latest actions](https://github.com/ligen131/ggj2024-game/actions). + +**You can also try our online demo at .** Due to the rendering process requiring time to load, the webpage may take a while to load. ## TODO @@ -27,20 +35,50 @@ A game made by Team 玩一个四字音游导致的 during [Global Game Jam](http - [x] 关卡跳转 UI - [x] 关卡点击跳转 - [x] 录入数据 -- [ ] 算式框,备选框,关卡框纹理 -- [ ] card card_base 边框纹理 +- [x] 算式框,备选框,关卡框纹理 +- [x] card card_base 边框纹理 - [ ] 音效 -- [ ] 关卡设计 -- [ ] 背景颜色 -- [ ] 主页 MainMenu UI -- [ ] 主页动画 -- [ ] 主页跳转 +- [ ] 关卡设计 `<` `>`- cxk +- [x] 背景颜色 +- [x] 主页 MainMenu UI +- [x] 主页动画 - mouse +- [x] 主页跳转 +- [x] 主页开始按钮动画 +- [x] 通关后禁用鼠标操作 card +- [x] 选关页面返回按钮 +- [x] 右上角重玩按钮 - [ ] 通关之后高亮笑脸 - -## How to play +- [x] 通关之后下一关底部浮现按钮 +- [x] 金色框纹理统一 +- [ ] 关卡高亮动画 // 这是啥? +- [x] 章节标题 +- [ ] 卡片文字偏移 +- [x] 瞎几把拖 card 有 bug +- [ ] 卡片被放置后继续动画会露馅 +- [x] 主页笑脸乱飞动画 +- [ ] 场景切换的过场动画 ## Build +```shell +# Windows +$ godot --headless --verbose --export-release "Windows Desktop" equal_to_p.exe + +# Linux +$ godot --headless --verbose --export-release "Linux/X11" equal_to_p.x86_64 + +# MacOS +$ godot --headless --verbose --export-release "mac" equal_to_p.zip + +# Web +$ mkdir -v -p build/web +$ godot --headless --verbose --export-release "Web" build/web/index.html +$ cd build/web/ +$ curl https://raw.githubusercontent.com/josephrocca/clip-image-sorter/92b108dc670d0b56bd6b72963b0e86c4c862412e/enable-threads.js --output enable-threads.js +$ sed -i 's|headers.set("Cross-Origin-Embedder-Policy", "credentialless")|headers.set("Cross-Origin-Embedder-Policy", "require-corp")|g' enable-threads.js +$ sed -i 's|||g' index.html +``` + ## Engine [Godot 4.2](https://github.com/godotengine/godot)