pygamestudio 1.0.0.dev2__tar.gz → 1.0.0.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/PKG-INFO +2 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/README.md +1 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/README_zh-CN.md +1 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/pyproject.toml +1 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/api/runtime/config.py +3 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/api/runtime/scene.py +13 -6
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/languages/en.json +26 -3
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/languages/zh_CN.json +26 -3
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/translator.py +3 -4
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/res/fonts/SIMHEI.ttf +0 -0
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/res/images/image.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/qss/dark.qss +18 -1
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/res/qss/light.qss +563 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/resources.qrc +1 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/resources_rc.py +71 -2
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/res/templates/editor_template.pygs +4 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/utils/config.py +1 -0
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/utils/constant.py +1 -0
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/utils/path.py +16 -0
- pygamestudio-1.0.0.dev4/src/pygamestudio/common/utils/theme.py +18 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/core/manager.py +21 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/base.py +3 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/ellipse.py +3 -3
- pygamestudio-1.0.0.dev4/src/pygamestudio/game/object/image.py +119 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/line.py +6 -6
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/rect.py +4 -6
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/text.py +31 -6
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/type.py +2 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/search.py +2 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/base/window.py +2 -13
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/build/desktop.py +1 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/browser.py +47 -8
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/search.py +2 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/window.py +4 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/delegate.py +15 -3
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/dialog.py +3 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/search.py +2 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/menu.py +3 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/search.py +2 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/tree.py +2 -1
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/widget.py +3 -0
- pygamestudio-1.0.0.dev4/src/pygamestudio/gui/inspector/component/lineedit.py +188 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/container.py +41 -12
- pygamestudio-1.0.0.dev4/src/pygamestudio/gui/inspector/layout/image.py +108 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/layout/text.py +17 -6
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/gizmo.py +9 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/grid.py +86 -23
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/screen.py +34 -4
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/window.py +8 -5
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/settings/editor.py +47 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/settings/project.py +12 -2
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/window.py +10 -4
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/main.py +5 -0
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/res/templates/editor_template.pygs +0 -3
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/utils/constant.py +0 -1
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/utils/path.py +0 -4
- pygamestudio-1.0.0.dev2/src/pygamestudio/gui/inspector/component/lineedit.py +0 -19
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/.github/FUNDING.yml +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/.gitignore +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/LICENSE +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/api/runtime/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/add.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/add_item.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/browse.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/canvas.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/check.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/clear.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/close.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/create_project.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/down_arrow.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/ellipse.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/error.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/expand_or_collapse_all.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/eye_closed.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/eye_off.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/eye_open.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/heart.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/import_project.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/info.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/left_arrow.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/line.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/logo.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/maximize.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/maximize_disabled.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/minimize.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/normalize.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/project_icon.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/rect.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/refresh_asset.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/right_arrow.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/run.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/search.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/sort.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/text.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/tree_arrow_down.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/tree_arrow_right.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/up_arrow.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/images/warning.png +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/templates/main_template.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/templates/project_template.pygs +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/core/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/button.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/game/object/canvas.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/about/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/about/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/delegate.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/menu.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/model.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/tree.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/type.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/widget.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/asset/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/build/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/build/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/logger.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/menu.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/type.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/console/widget.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/config.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/list.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/menu.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/model.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/type.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/widget.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/dashboard/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/delegate.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/hierarchy/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/button.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/checkbox.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/combobox.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/label.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/picker.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/spinbox.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/component/textedit.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/layout/canvas.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/layout/ellipse.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/layout/line.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/layout/rect.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/widget.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/inspector/window.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/main.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/__init__.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/scene/widget.py +0 -0
- {pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/gui/settings/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pygamestudio
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev4
|
|
4
4
|
Summary: Let's create pygame visually!
|
|
5
5
|
Project-URL: Documentation, https://pygamestudio.com/tutorial/installation
|
|
6
6
|
Project-URL: Homepage, https://pygamestudio.com
|
|
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
|
|
|
39
39
|
<br>
|
|
40
40
|
<br>
|
|
41
41
|
|
|
42
|
-
[
|
|
42
|
+
English | [简体中文](https://github.com/pygamestudio/pygamestudio/blob/main/README_zh-CN.md)
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
**Pygame Studio** is a visual editor built specifically for **pygame-ce**, designed to help users create pygame-ce projects visually, making it easier for beginners, students, and hobby developers to get started with pygame development.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<br>
|
|
11
11
|
<br>
|
|
12
12
|
|
|
13
|
-
[
|
|
13
|
+
English | [简体中文](https://github.com/pygamestudio/pygamestudio/blob/main/README_zh-CN.md)
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
16
|
**Pygame Studio** is a visual editor built specifically for **pygame-ce**, designed to help users create pygame-ce projects visually, making it easier for beginners, students, and hobby developers to get started with pygame development.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<br>
|
|
11
11
|
<br>
|
|
12
12
|
|
|
13
|
-
[
|
|
13
|
+
[English](https://github.com/pygamestudio/pygamestudio) | 简体中文
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
16
|
**Pygame Studio** 是专为 **pygame-ce** 打造的可视化编辑器,支持以可视化方式制作 pygame-ce 项目,让编程新手、在校学生以及业余开发者都能更轻松地入门 Pygame 游戏开发。
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import json
|
|
3
3
|
from pathlib import Path
|
|
4
|
+
from pygamestudio.common.i18n.translator import Translator as T
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
def get_project_config():
|
|
@@ -8,11 +9,11 @@ def get_project_config():
|
|
|
8
9
|
project_config_file_path = project_path / 'project.pygs'
|
|
9
10
|
|
|
10
11
|
if not project_config_file_path.exists():
|
|
11
|
-
raise RuntimeError('
|
|
12
|
+
raise RuntimeError(T.tr('api.no_project_pygs', 'Failed to find config file project.pygs in the project root directory.'))
|
|
12
13
|
|
|
13
14
|
try:
|
|
14
15
|
with open(project_config_file_path, 'r', encoding='utf-8') as f:
|
|
15
16
|
project_config = json.load(f)
|
|
16
17
|
return project_config
|
|
17
18
|
except Exception as e:
|
|
18
|
-
raise RuntimeError(
|
|
19
|
+
raise RuntimeError(T.tr('api.fail_to_load_project_pygs', 'Failed to load config file project.pygs: {}').format(str(e)))
|
|
@@ -3,13 +3,15 @@ import re
|
|
|
3
3
|
import json
|
|
4
4
|
import pygame
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from pygamestudio.api.runtime.config import get_project_config
|
|
7
|
-
|
|
8
6
|
from pygamestudio.game.object.type import *
|
|
9
7
|
from pygamestudio.game.object.rect import *
|
|
10
8
|
from pygamestudio.game.object.canvas import *
|
|
11
9
|
from pygamestudio.game.object.text import *
|
|
12
10
|
from pygamestudio.game.object.ellipse import *
|
|
11
|
+
from pygamestudio.game.object.line import *
|
|
12
|
+
from pygamestudio.game.object.image import *
|
|
13
|
+
from pygamestudio.api.runtime.config import get_project_config
|
|
14
|
+
from pygamestudio.common.i18n.translator import Translator as T
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
class SceneLoader:
|
|
@@ -30,7 +32,7 @@ class SceneLoader:
|
|
|
30
32
|
scene_path = Path(os.environ.get('PROJECT_PATH')) / project_config['asset']['current_scene']
|
|
31
33
|
|
|
32
34
|
if not Path(scene_path).exists():
|
|
33
|
-
raise RuntimeError(
|
|
35
|
+
raise RuntimeError(T.tr('api.no_scene_path', 'The scene path {} does not exist.').format(scene_path))
|
|
34
36
|
|
|
35
37
|
self._all_object_tree_struct = {}
|
|
36
38
|
self._current_scene_path = scene_path
|
|
@@ -75,7 +77,10 @@ class SceneLoader:
|
|
|
75
77
|
obj = ObjectText(self, object_data, is_for_api=True)
|
|
76
78
|
elif object_type == OBJECT_ELLIPSE:
|
|
77
79
|
obj = ObjectEllipse(self, object_data, is_for_api=True)
|
|
78
|
-
|
|
80
|
+
elif object_type == OBJECT_LINE:
|
|
81
|
+
obj = ObjectLine(self, object_data, is_for_api=True)
|
|
82
|
+
elif object_type == OBJECT_IMAGE:
|
|
83
|
+
obj = ObjectImage(self, object_data, is_for_api=True)
|
|
79
84
|
return obj
|
|
80
85
|
|
|
81
86
|
def _add_object_tree_struct(self, parent_uuid, object_tree_struct_to_add):
|
|
@@ -124,7 +129,9 @@ class SceneLoader:
|
|
|
124
129
|
if part_number < recursion_time:
|
|
125
130
|
return None
|
|
126
131
|
elif part_number == recursion_time:
|
|
127
|
-
if name == value['object'].name
|
|
132
|
+
if target_item_index == current_item_index and name == value['object'].name:
|
|
133
|
+
return {key: value}
|
|
134
|
+
elif target_item_index is None and name == value['object'].name:
|
|
128
135
|
return {key: value}
|
|
129
136
|
else:
|
|
130
137
|
return None
|
|
@@ -148,7 +155,7 @@ class SceneLoader:
|
|
|
148
155
|
|
|
149
156
|
recursion_time = 0
|
|
150
157
|
name = match.group(1)
|
|
151
|
-
target_item_index = int(match.group(2)) if match.group(2) is not None else
|
|
158
|
+
target_item_index = int(match.group(2)) if match.group(2) is not None else None
|
|
152
159
|
object_tree_struct = _get(name, target_item_index, 0, recursion_time, i, self._all_object_tree_struct)
|
|
153
160
|
|
|
154
161
|
if i < len(path_parts)-1:
|
{pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/languages/en.json
RENAMED
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"line": "Line",
|
|
88
88
|
"rect": "Rect",
|
|
89
89
|
"ellipse": "Ellipse",
|
|
90
|
-
"text": "Text"
|
|
90
|
+
"text": "Text",
|
|
91
|
+
"image": "Image"
|
|
91
92
|
},
|
|
92
93
|
|
|
93
94
|
"gm": {
|
|
@@ -112,6 +113,7 @@
|
|
|
112
113
|
|
|
113
114
|
"scene": {
|
|
114
115
|
"scene": "Scene",
|
|
116
|
+
"scene_saved": "Scene saved",
|
|
115
117
|
"run_project": "Run Project {}",
|
|
116
118
|
"failed_to_run_project": "Failed to Run Project {}: {}"
|
|
117
119
|
},
|
|
@@ -149,7 +151,11 @@
|
|
|
149
151
|
"italic": "Italic",
|
|
150
152
|
"underline": "Underline",
|
|
151
153
|
"strikethrough": "Strikethrough",
|
|
152
|
-
"select_color": "Select Color"
|
|
154
|
+
"select_color": "Select Color",
|
|
155
|
+
"image_path": "Image Path",
|
|
156
|
+
"select_image": "Select Image",
|
|
157
|
+
"font_path": "Font Path",
|
|
158
|
+
"format": "Format"
|
|
153
159
|
},
|
|
154
160
|
|
|
155
161
|
"dashboard": {
|
|
@@ -181,7 +187,8 @@
|
|
|
181
187
|
"screen_width": "Screen Width",
|
|
182
188
|
"screen_height": "Screen Height",
|
|
183
189
|
"general": "General",
|
|
184
|
-
"language": "Language"
|
|
190
|
+
"language": "Language",
|
|
191
|
+
"theme": "Theme"
|
|
185
192
|
},
|
|
186
193
|
|
|
187
194
|
"about": {
|
|
@@ -202,5 +209,21 @@
|
|
|
202
209
|
"stop": "Stop",
|
|
203
210
|
"select_app_icon": "Select App Icon",
|
|
204
211
|
"select_output_dir": "Select Output Dir"
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
"theme": {
|
|
215
|
+
"dark": "Dark",
|
|
216
|
+
"light": "Light"
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
"api": {
|
|
220
|
+
"no_scene_path": "The scene path {} does not exist.",
|
|
221
|
+
"no_project_pygs": "Failed to find config file project.pygs in the project root directory.",
|
|
222
|
+
"fail_to_load_project_pygs": "Failed to load config file project.pygs: {}"
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
"translator": {
|
|
226
|
+
"no_lang_code_json": "Couldn't find {}.json",
|
|
227
|
+
"fail_to_load_lang_code_json": "Failed to load {}.json: {}"
|
|
205
228
|
}
|
|
206
229
|
}
|
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"line": "线条",
|
|
88
88
|
"rect": "矩形",
|
|
89
89
|
"ellipse": "椭圆",
|
|
90
|
-
"text": "文本"
|
|
90
|
+
"text": "文本",
|
|
91
|
+
"image": "图片"
|
|
91
92
|
},
|
|
92
93
|
|
|
93
94
|
"gm": {
|
|
@@ -112,6 +113,7 @@
|
|
|
112
113
|
|
|
113
114
|
"scene": {
|
|
114
115
|
"scene": "场景编辑器",
|
|
116
|
+
"scene_saved": "场景已保存",
|
|
115
117
|
"run_project": "运行项目{}",
|
|
116
118
|
"failed_to_run_project": "项目{}运行失败:{}"
|
|
117
119
|
},
|
|
@@ -149,7 +151,11 @@
|
|
|
149
151
|
"italic": "斜体",
|
|
150
152
|
"underline": "下划线",
|
|
151
153
|
"strikethrough": "删除线",
|
|
152
|
-
"select_color": "选择颜色"
|
|
154
|
+
"select_color": "选择颜色",
|
|
155
|
+
"image_path": "图片路径",
|
|
156
|
+
"font_path": "字体路径",
|
|
157
|
+
"select_image": "选择图片",
|
|
158
|
+
"format": "格式"
|
|
153
159
|
},
|
|
154
160
|
|
|
155
161
|
"dashboard": {
|
|
@@ -181,7 +187,8 @@
|
|
|
181
187
|
"screen_width": "窗口宽度",
|
|
182
188
|
"screen_height": "窗口高度",
|
|
183
189
|
"general": "通用",
|
|
184
|
-
"language": "语言"
|
|
190
|
+
"language": "语言",
|
|
191
|
+
"theme": "主题"
|
|
185
192
|
},
|
|
186
193
|
|
|
187
194
|
"about": {
|
|
@@ -202,5 +209,21 @@
|
|
|
202
209
|
"stop": "停止",
|
|
203
210
|
"select_app_icon": "选择应用图标",
|
|
204
211
|
"select_output_dir": "选择输出目录"
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
"theme": {
|
|
215
|
+
"dark": "深色",
|
|
216
|
+
"light": "浅色"
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
"api": {
|
|
220
|
+
"no_scene_path": "场景路径{}不存在。",
|
|
221
|
+
"no_project_pygs": "没有在项目根目录下找到project.pygs配置文件",
|
|
222
|
+
"fail_to_load_project_pygs": "配置文件project.pygs加载失败:{}"
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
"translator": {
|
|
226
|
+
"no_lang_code_json": "无法找到文件{}.json",
|
|
227
|
+
"fail_to_load_lang_code_json": "无法加载{}.json:{}"
|
|
205
228
|
}
|
|
206
229
|
}
|
{pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/i18n/translator.py
RENAMED
|
@@ -23,20 +23,19 @@ class Translator:
|
|
|
23
23
|
|
|
24
24
|
@staticmethod
|
|
25
25
|
def load_language(lang_code):
|
|
26
|
+
instance = Translator.get_instance()
|
|
26
27
|
lang_file = LANG_PATH / f'{lang_code}.json'
|
|
27
28
|
|
|
28
29
|
if not lang_file.exists():
|
|
29
|
-
Logger.error(
|
|
30
|
+
Logger.error(instance.tr('translator.no_lang_code_json', "Couldn't find {}.json").format(lang_code))
|
|
30
31
|
return
|
|
31
|
-
|
|
32
|
-
instance = Translator.get_instance()
|
|
33
32
|
|
|
34
33
|
try:
|
|
35
34
|
with open(lang_file, 'r', encoding='utf-8') as f:
|
|
36
35
|
instance.lang_dict = json.load(f)
|
|
37
36
|
instance.current_language = lang_code
|
|
38
37
|
except Exception as e:
|
|
39
|
-
Logger.error(
|
|
38
|
+
Logger.error(instance.tr('translator.fail_to_load_lang_code_json', 'Failed to load {}.json: {}').format(lang_code, e))
|
|
40
39
|
|
|
41
40
|
@staticmethod
|
|
42
41
|
def toggle_language(lang_code):
|
|
Binary file
|
|
Binary file
|
{pygamestudio-1.0.0.dev2 → pygamestudio-1.0.0.dev4}/src/pygamestudio/common/res/qss/dark.qss
RENAMED
|
@@ -24,6 +24,7 @@ QPushButton {
|
|
|
24
24
|
background-color: #2e2f30;
|
|
25
25
|
border-radius: 5px;
|
|
26
26
|
padding: 5px;
|
|
27
|
+
outline: none;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
QPushButton:disabled {
|
|
@@ -100,15 +101,27 @@ QSpinBox QLabel, QDoubleSpinBox QLabel {
|
|
|
100
101
|
|
|
101
102
|
QComboBox {
|
|
102
103
|
border-radius: 5px;
|
|
103
|
-
padding:
|
|
104
|
+
padding: 0px 6px;
|
|
104
105
|
padding-right: 2px;
|
|
105
106
|
border: 1px solid #3c3c3c;
|
|
107
|
+
min-height: 26px;
|
|
106
108
|
}
|
|
107
109
|
|
|
108
110
|
QComboBox:hover {
|
|
109
111
|
border: 1px solid #007acc;
|
|
110
112
|
}
|
|
111
113
|
|
|
114
|
+
QComboBox::item {
|
|
115
|
+
width: 20px;
|
|
116
|
+
height: 26px;
|
|
117
|
+
padding-left: -20px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
QComboBox::item:hover, QComboBox::item:selected {
|
|
121
|
+
background-color: #007acc;
|
|
122
|
+
padding-left: -20px;
|
|
123
|
+
}
|
|
124
|
+
|
|
112
125
|
QComboBox::drop-down {
|
|
113
126
|
width: 15px;
|
|
114
127
|
border: 0px;
|
|
@@ -533,6 +546,10 @@ QWidget#inspectorContainer QCheckBox::indicator:hover {
|
|
|
533
546
|
border: 1px solid #007acc;
|
|
534
547
|
}
|
|
535
548
|
|
|
549
|
+
QWidget#inspectorContainer QSpinBox:disabled, QWidget#inspectorContainer QDoubleSpinBox:disabled {
|
|
550
|
+
color: gray;
|
|
551
|
+
}
|
|
552
|
+
|
|
536
553
|
/* ----- About ----- */
|
|
537
554
|
QLabel#aboutCopyrightLabel {
|
|
538
555
|
font-size: 10px;
|