pygamestudio 1.0.0.dev1__tar.gz → 1.0.0.dev2__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.dev1 → pygamestudio-1.0.0.dev2}/PKG-INFO +27 -6
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/README.md +25 -5
- pygamestudio-1.0.0.dev2/README_zh-CN.md +112 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/pyproject.toml +3 -2
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/api/runtime/scene.py +49 -12
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/i18n/languages/en.json +26 -1
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/i18n/languages/zh_CN.json +27 -2
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/res/images/browse.png +0 -0
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/res/images/heart.png +0 -0
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/res/images/line.png +0 -0
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/res/images/maximize_disabled.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/qss/dark.qss +38 -1
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/resources.qrc +4 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/resources_rc.py +313 -22
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/templates/main_template.py +5 -4
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/templates/project_template.pygs +5 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/utils/config.py +1 -1
- pygamestudio-1.0.0.dev2/src/pygamestudio/common/utils/constant.py +1 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/core/manager.py +6 -4
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/base.py +12 -14
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/canvas.py +1 -1
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/ellipse.py +4 -6
- pygamestudio-1.0.0.dev2/src/pygamestudio/game/object/line.py +102 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/rect.py +5 -9
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/text.py +4 -9
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/about/window.py +4 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/search.py +3 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/tree.py +7 -7
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/base/window.py +6 -2
- pygamestudio-1.0.0.dev2/src/pygamestudio/gui/build/desktop.py +351 -0
- pygamestudio-1.0.0.dev2/src/pygamestudio/gui/build/window.py +62 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/search.py +3 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/dialog.py +61 -42
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/list.py +7 -6
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/menu.py +3 -3
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/search.py +3 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/tree.py +3 -3
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/widget.py +3 -3
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/layout/line.py +22 -22
- pygamestudio-1.0.0.dev2/src/pygamestudio/gui/scene/gizmo.py +172 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/scene/screen.py +33 -10
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/settings/editor.py +17 -4
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/settings/project.py +5 -1
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/window.py +23 -7
- pygamestudio-1.0.0.dev1/src/pygamestudio/api/runtime/object.py +0 -0
- pygamestudio-1.0.0.dev1/src/pygamestudio/common/utils/constant.py +0 -1
- pygamestudio-1.0.0.dev1/src/pygamestudio/game/object/line.py +0 -175
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/.github/FUNDING.yml +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/.gitignore +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/LICENSE +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/api/runtime/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/api/runtime/config.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/i18n/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/i18n/translator.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/add.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/add_item.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/canvas.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/check.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/clear.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/close.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/create_project.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/down_arrow.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/ellipse.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/error.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/expand_or_collapse_all.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/eye_closed.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/eye_off.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/eye_open.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/import_project.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/info.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/left_arrow.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/logo.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/maximize.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/minimize.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/normalize.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/project_icon.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/rect.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/refresh_asset.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/right_arrow.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/run.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/search.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/sort.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/text.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/tree_arrow_down.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/tree_arrow_right.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/up_arrow.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/images/warning.png +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/templates/editor_template.pygs +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/utils/path.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/core/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/button.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/game/object/type.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/about/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/delegate.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/menu.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/model.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/type.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/widget.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/asset/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/build/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/browser.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/logger.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/menu.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/type.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/widget.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/console/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/config.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/delegate.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/menu.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/model.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/search.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/type.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/widget.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/dashboard/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/delegate.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/hierarchy/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/button.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/checkbox.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/combobox.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/label.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/lineedit.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/picker.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/spinbox.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/component/textedit.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/container.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/layout/canvas.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/layout/ellipse.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/layout/rect.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/layout/text.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/widget.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/inspector/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/main.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/scene/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/scene/grid.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/scene/widget.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/scene/window.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/gui/settings/__init__.py +0 -0
- {pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/main.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.dev2
|
|
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
|
|
@@ -23,6 +23,7 @@ Requires-Python: >=3.9
|
|
|
23
23
|
Requires-Dist: numpy>=1.26.0
|
|
24
24
|
Requires-Dist: platformdirs>=3.5.1
|
|
25
25
|
Requires-Dist: pygame-ce>=2.5.6
|
|
26
|
+
Requires-Dist: pyinstaller>=6.18.0
|
|
26
27
|
Requires-Dist: pyside6>=6.10.0
|
|
27
28
|
Description-Content-Type: text/markdown
|
|
28
29
|
|
|
@@ -35,9 +36,11 @@ Description-Content-Type: text/markdown
|
|
|
35
36
|
<img src="https://static.pepy.tech/personalized-badge/pygamestudio?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" />
|
|
36
37
|
<img src="https://img.shields.io/pypi/v/pygamestudio.svg?maxAge=86400">
|
|
37
38
|
<img src="https://img.shields.io/badge/python-3-red.svg" />
|
|
38
|
-
|
|
39
|
+
<br>
|
|
40
|
+
<br>
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
[README (简体中文)](https://github.com/pygamestudio/pygamestudio/blob/main/README_zh-CN.md)
|
|
43
|
+
</div>
|
|
41
44
|
|
|
42
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.
|
|
43
46
|
|
|
@@ -60,6 +63,12 @@ After installation, run the following command in your terminal to launch the edi
|
|
|
60
63
|
pygamestudio
|
|
61
64
|
```
|
|
62
65
|
|
|
66
|
+
You may also use the shortcut command:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pygs
|
|
70
|
+
```
|
|
71
|
+
|
|
63
72
|
If the Pygame Studio editor launches successfully, the installation is complete.
|
|
64
73
|
|
|
65
74
|
<img src="https://i-blog.csdnimg.cn/direct/2824782c7b4d4f2fb9f5650bab6ce87e.png" width="600"/>
|
|
@@ -73,6 +82,7 @@ If the Pygame Studio editor launches successfully, the installation is complete.
|
|
|
73
82
|
| PySide6 | >=6.10.0 |
|
|
74
83
|
| platformdirs | >=3.5.1 |
|
|
75
84
|
| numpy | >=1.26.0 |
|
|
85
|
+
| pyinstaller | >=6.18.0 |
|
|
76
86
|
|
|
77
87
|
<br>
|
|
78
88
|
|
|
@@ -83,22 +93,28 @@ If the Pygame Studio editor launches successfully, the installation is complete.
|
|
|
83
93
|
pygamestudio
|
|
84
94
|
```
|
|
85
95
|
|
|
96
|
+
Or use the shortcut command:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
pygs
|
|
100
|
+
```
|
|
101
|
+
|
|
86
102
|
<br>
|
|
87
103
|
|
|
88
104
|
**2.** Click the "Create" button to create a new project.
|
|
89
105
|
|
|
90
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
106
|
+
<img src="https://i-blog.csdnimg.cn/direct/e60511fa4e344e1faf36fe41f160fa4e.png" width="600"/>
|
|
91
107
|
|
|
92
108
|
|
|
93
109
|
Once created, the game project will be displayed in the Dashboard.
|
|
94
110
|
|
|
95
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
111
|
+
<img src="https://i-blog.csdnimg.cn/direct/167b961ee6c14c0e8ceccdaf81706f57.png" width="600"/>
|
|
96
112
|
|
|
97
113
|
<br>
|
|
98
114
|
|
|
99
115
|
**3.** Double-click the created project to open the editing window and start your creation.
|
|
100
116
|
|
|
101
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
117
|
+
<img src="https://i-blog.csdnimg.cn/direct/28198f7ded9143f58f866c9a7e8d6dd2.png" width="800"/>
|
|
102
118
|
|
|
103
119
|
<br>
|
|
104
120
|
|
|
@@ -107,6 +123,11 @@ Once created, the game project will be displayed in the Dashboard.
|
|
|
107
123
|
|
|
108
124
|
<br>
|
|
109
125
|
|
|
126
|
+
# Release Notes
|
|
127
|
+
🔗 visit https://pygamestudio.com/updates_and_support/release_notes
|
|
128
|
+
|
|
129
|
+
<br>
|
|
130
|
+
|
|
110
131
|
# Key Features
|
|
111
132
|
- **Open Source & Free Forever**: Released under the MIT LICENSE, free to use and modify for all purposes.
|
|
112
133
|
- **Easy Installation**: Simply run `pip install pygamestudio` to install the editor.
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
<img src="https://static.pepy.tech/personalized-badge/pygamestudio?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" />
|
|
8
8
|
<img src="https://img.shields.io/pypi/v/pygamestudio.svg?maxAge=86400">
|
|
9
9
|
<img src="https://img.shields.io/badge/python-3-red.svg" />
|
|
10
|
-
|
|
10
|
+
<br>
|
|
11
|
+
<br>
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
[README (简体中文)](https://github.com/pygamestudio/pygamestudio/blob/main/README_zh-CN.md)
|
|
14
|
+
</div>
|
|
13
15
|
|
|
14
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.
|
|
15
17
|
|
|
@@ -32,6 +34,12 @@ After installation, run the following command in your terminal to launch the edi
|
|
|
32
34
|
pygamestudio
|
|
33
35
|
```
|
|
34
36
|
|
|
37
|
+
You may also use the shortcut command:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pygs
|
|
41
|
+
```
|
|
42
|
+
|
|
35
43
|
If the Pygame Studio editor launches successfully, the installation is complete.
|
|
36
44
|
|
|
37
45
|
<img src="https://i-blog.csdnimg.cn/direct/2824782c7b4d4f2fb9f5650bab6ce87e.png" width="600"/>
|
|
@@ -45,6 +53,7 @@ If the Pygame Studio editor launches successfully, the installation is complete.
|
|
|
45
53
|
| PySide6 | >=6.10.0 |
|
|
46
54
|
| platformdirs | >=3.5.1 |
|
|
47
55
|
| numpy | >=1.26.0 |
|
|
56
|
+
| pyinstaller | >=6.18.0 |
|
|
48
57
|
|
|
49
58
|
<br>
|
|
50
59
|
|
|
@@ -55,22 +64,28 @@ If the Pygame Studio editor launches successfully, the installation is complete.
|
|
|
55
64
|
pygamestudio
|
|
56
65
|
```
|
|
57
66
|
|
|
67
|
+
Or use the shortcut command:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pygs
|
|
71
|
+
```
|
|
72
|
+
|
|
58
73
|
<br>
|
|
59
74
|
|
|
60
75
|
**2.** Click the "Create" button to create a new project.
|
|
61
76
|
|
|
62
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
77
|
+
<img src="https://i-blog.csdnimg.cn/direct/e60511fa4e344e1faf36fe41f160fa4e.png" width="600"/>
|
|
63
78
|
|
|
64
79
|
|
|
65
80
|
Once created, the game project will be displayed in the Dashboard.
|
|
66
81
|
|
|
67
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
82
|
+
<img src="https://i-blog.csdnimg.cn/direct/167b961ee6c14c0e8ceccdaf81706f57.png" width="600"/>
|
|
68
83
|
|
|
69
84
|
<br>
|
|
70
85
|
|
|
71
86
|
**3.** Double-click the created project to open the editing window and start your creation.
|
|
72
87
|
|
|
73
|
-
<img src="https://i-blog.csdnimg.cn/direct/
|
|
88
|
+
<img src="https://i-blog.csdnimg.cn/direct/28198f7ded9143f58f866c9a7e8d6dd2.png" width="800"/>
|
|
74
89
|
|
|
75
90
|
<br>
|
|
76
91
|
|
|
@@ -79,6 +94,11 @@ Once created, the game project will be displayed in the Dashboard.
|
|
|
79
94
|
|
|
80
95
|
<br>
|
|
81
96
|
|
|
97
|
+
# Release Notes
|
|
98
|
+
🔗 visit https://pygamestudio.com/updates_and_support/release_notes
|
|
99
|
+
|
|
100
|
+
<br>
|
|
101
|
+
|
|
82
102
|
# Key Features
|
|
83
103
|
- **Open Source & Free Forever**: Released under the MIT LICENSE, free to use and modify for all purposes.
|
|
84
104
|
- **Easy Installation**: Simply run `pip install pygamestudio` to install the editor.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<div align="center"><img src="https://i-blog.csdnimg.cn/direct/ce0f186a9ade4295bfa9367ceecba0e2.png" width="300"></div>
|
|
2
|
+
<div dir="auto" align="center">
|
|
3
|
+
<img src="https://img.shields.io/badge/Pygame Studio-Open Source-green.svg" />
|
|
4
|
+
<img src="https://img.shields.io/badge/For-pygame_ce-dark.svg" />
|
|
5
|
+
<img src="https://img.shields.io/badge/Language-Python-purple.svg" />
|
|
6
|
+
<img src="https://img.shields.io/badge/License-MIT-orange.svg" />
|
|
7
|
+
<img src="https://static.pepy.tech/personalized-badge/pygamestudio?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" />
|
|
8
|
+
<img src="https://img.shields.io/pypi/v/pygamestudio.svg?maxAge=86400">
|
|
9
|
+
<img src="https://img.shields.io/badge/python-3-red.svg" />
|
|
10
|
+
<br>
|
|
11
|
+
<br>
|
|
12
|
+
|
|
13
|
+
[README (English)](https://github.com/pygamestudio/pygamestudio)
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
**Pygame Studio** 是专为 **pygame-ce** 打造的可视化编辑器,支持以可视化方式制作 pygame-ce 项目,让编程新手、在校学生以及业余开发者都能更轻松地入门 Pygame 游戏开发。
|
|
17
|
+
|
|
18
|
+
<br>
|
|
19
|
+
|
|
20
|
+
# 安装教程
|
|
21
|
+
你可以通过 pip 快速安装 Pygame Studio(请确保已安装 Python 3.9 及以上版本):
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pip install --upgrade pygamestudio
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
> **注意:** 当前版本均为开发测试版,请务必加上 --upgrade 参数,确保安装最新开发版,而非本地缓存的旧版本。
|
|
28
|
+
|
|
29
|
+
<br>
|
|
30
|
+
|
|
31
|
+
安装完成后,在终端执行以下命令即可启动编辑器,同时验证安装是否成功:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pygamestudio
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
也可以使用以下快捷命令:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pygs
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
若 Pygame Studio 编辑器成功显示,即代表安装成功。
|
|
44
|
+
|
|
45
|
+
<img src="https://i-blog.csdnimg.cn/direct/2824782c7b4d4f2fb9f5650bab6ce87e.png" width="600"/>
|
|
46
|
+
|
|
47
|
+
<br>
|
|
48
|
+
|
|
49
|
+
# 依赖库
|
|
50
|
+
| 库名称 | 要求版本 |
|
|
51
|
+
|-----|-----|
|
|
52
|
+
| pygame-ce | >=2.5.6 |
|
|
53
|
+
| PySide6 | >=6.10.0 |
|
|
54
|
+
| platformdirs | >=3.5.1 |
|
|
55
|
+
| numpy | >=1.26.0 |
|
|
56
|
+
| pyinstaller | >=6.18.0 |
|
|
57
|
+
|
|
58
|
+
<br>
|
|
59
|
+
|
|
60
|
+
# 快速上手
|
|
61
|
+
**1.** 输入以下命令启动 Pygame Studio:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pygamestudio
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
也可以使用以下快捷命令:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pygs
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
<br>
|
|
74
|
+
|
|
75
|
+
**2.** 点击「创建」按钮新建项目。
|
|
76
|
+
|
|
77
|
+
<img src="https://i-blog.csdnimg.cn/direct/e60511fa4e344e1faf36fe41f160fa4e.png" width="600"/>
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
创建完成后,游戏项目会展示在项目面板中。
|
|
81
|
+
|
|
82
|
+
<img src="https://i-blog.csdnimg.cn/direct/167b961ee6c14c0e8ceccdaf81706f57.png" width="600"/>
|
|
83
|
+
|
|
84
|
+
<br>
|
|
85
|
+
|
|
86
|
+
**3.** 双击已创建的项目,即可打开编辑窗口,开始你的游戏创作。
|
|
87
|
+
|
|
88
|
+
<img src="https://i-blog.csdnimg.cn/direct/28198f7ded9143f58f866c9a7e8d6dd2.png" width="800"/>
|
|
89
|
+
|
|
90
|
+
<br>
|
|
91
|
+
|
|
92
|
+
# 在线文档
|
|
93
|
+
🔗 请访问 https://pygamestudio.com
|
|
94
|
+
|
|
95
|
+
<br>
|
|
96
|
+
|
|
97
|
+
# 更新日志
|
|
98
|
+
🔗 请访问 https://pygamestudio.com/updates_and_support/release_notes
|
|
99
|
+
|
|
100
|
+
<br>
|
|
101
|
+
|
|
102
|
+
# 核心特点
|
|
103
|
+
- **永久开源免费**:基于 MIT 开源协议发布,可自由使用、二次修改。
|
|
104
|
+
- **极简安装方式**:只需执行 `pip install pygamestudio` 即可完成安装。
|
|
105
|
+
- **轻量跨平台**:启动速度快、无臃肿引擎,完美适配 Windows、macOS、Linux 三大系统。
|
|
106
|
+
- **可视化拖拽编辑**:以可视化拖拽方式开发 pygame-ce 游戏项目。
|
|
107
|
+
- **初学者友好**:非常适合 Python 初学者、学生和业余开发者学习与创作。
|
|
108
|
+
|
|
109
|
+
<br>
|
|
110
|
+
|
|
111
|
+
# 开源协议
|
|
112
|
+
Pygame Studio 基于 MIT 开源协议。
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pygamestudio"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.dev2"
|
|
8
8
|
authors = [{ name="Louis Ren", email="louis@pygamestudio.com" }]
|
|
9
9
|
description = "Let's create pygame visually!"
|
|
10
10
|
readme = "README.md"
|
|
@@ -28,7 +28,8 @@ dependencies = [
|
|
|
28
28
|
"pygame-ce>=2.5.6",
|
|
29
29
|
"PySide6>=6.10.0",
|
|
30
30
|
"platformdirs>=3.5.1",
|
|
31
|
-
"numpy>=1.26.0"
|
|
31
|
+
"numpy>=1.26.0",
|
|
32
|
+
"pyinstaller>=6.18.0"
|
|
32
33
|
]
|
|
33
34
|
|
|
34
35
|
[project.urls]
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import re
|
|
2
3
|
import json
|
|
3
4
|
import pygame
|
|
4
5
|
from pathlib import Path
|
|
@@ -115,7 +116,48 @@ class SceneLoader:
|
|
|
115
116
|
|
|
116
117
|
_update(self._all_object_tree_struct, screen_surface)
|
|
117
118
|
|
|
118
|
-
def
|
|
119
|
+
def _get_object_tree_struct_by_path(self, object_path):
|
|
120
|
+
def _get(name, target_item_index, current_item_index, recursion_time, part_number, object_tree_struct):
|
|
121
|
+
key = list(object_tree_struct.keys())[0]
|
|
122
|
+
value = list(object_tree_struct.values())[0]
|
|
123
|
+
|
|
124
|
+
if part_number < recursion_time:
|
|
125
|
+
return None
|
|
126
|
+
elif part_number == recursion_time:
|
|
127
|
+
if name == value['object'].name and target_item_index == current_item_index:
|
|
128
|
+
return {key: value}
|
|
129
|
+
else:
|
|
130
|
+
return None
|
|
131
|
+
else:
|
|
132
|
+
recursion_time += 1
|
|
133
|
+
for i, child_object_tree_struct in enumerate(value['children']):
|
|
134
|
+
result = _get(name, target_item_index, i, recursion_time, part_number, child_object_tree_struct)
|
|
135
|
+
if result:
|
|
136
|
+
return result
|
|
137
|
+
|
|
138
|
+
return None
|
|
139
|
+
|
|
140
|
+
path_parts = object_path.strip('/').split('/')
|
|
141
|
+
if not path_parts:
|
|
142
|
+
return None
|
|
143
|
+
|
|
144
|
+
for i, part in enumerate(path_parts):
|
|
145
|
+
match = re.fullmatch(r'([^\[\]]+)(?:\[(\d+)\])?', part.strip())
|
|
146
|
+
if not match:
|
|
147
|
+
return None
|
|
148
|
+
|
|
149
|
+
recursion_time = 0
|
|
150
|
+
name = match.group(1)
|
|
151
|
+
target_item_index = int(match.group(2)) if match.group(2) is not None else 0
|
|
152
|
+
object_tree_struct = _get(name, target_item_index, 0, recursion_time, i, self._all_object_tree_struct)
|
|
153
|
+
|
|
154
|
+
if i < len(path_parts)-1:
|
|
155
|
+
if object_tree_struct == None:
|
|
156
|
+
return None
|
|
157
|
+
else:
|
|
158
|
+
return object_tree_struct
|
|
159
|
+
|
|
160
|
+
def _get_object_tree_struct_by_uuid(self, object_uuid, parent_object_tree_struct=None):
|
|
119
161
|
def _get(object_uuid, object_tree_struct):
|
|
120
162
|
key = list(object_tree_struct.keys())[0]
|
|
121
163
|
value = list(object_tree_struct.values())[0]
|
|
@@ -134,15 +176,13 @@ class SceneLoader:
|
|
|
134
176
|
return _get(object_uuid, parent_object_tree_struct)
|
|
135
177
|
|
|
136
178
|
def get_object_by_path(self, object_path:str):
|
|
137
|
-
|
|
138
|
-
|
|
179
|
+
object_tree_struct = self._get_object_tree_struct_by_path(object_path)
|
|
180
|
+
return list(object_tree_struct.values())[0]['object'] if object_tree_struct else None
|
|
181
|
+
|
|
139
182
|
def get_object_by_uuid(self, object_uuid:str):
|
|
140
|
-
object_tree_struct = self.
|
|
183
|
+
object_tree_struct = self._get_object_tree_struct_by_uuid(object_uuid)
|
|
141
184
|
return object_tree_struct[object_uuid]['object'] if object_tree_struct else None
|
|
142
|
-
|
|
143
|
-
def get_object_by_name(self, object_name:str):
|
|
144
|
-
...
|
|
145
|
-
|
|
185
|
+
|
|
146
186
|
|
|
147
187
|
scene_loader = SceneLoader()
|
|
148
188
|
|
|
@@ -153,7 +193,4 @@ def get_object_by_path(object_path:str) -> object:
|
|
|
153
193
|
return scene_loader.get_object_by_path(object_path)
|
|
154
194
|
|
|
155
195
|
def get_object_by_uuid(object_uuid:str) -> object:
|
|
156
|
-
return scene_loader.get_object_by_uuid(object_uuid)
|
|
157
|
-
|
|
158
|
-
def get_object_by_name(object_name:str) -> object:
|
|
159
|
-
return scene_loader.get_object_by_name(object_name)
|
|
196
|
+
return scene_loader.get_object_by_uuid(object_uuid)
|
{pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/i18n/languages/en.json
RENAMED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"question_delete_hierarchy_item_content": "Sure to delete the selected item(s)?",
|
|
14
14
|
"question_delete_project_content": "Sure to delete the project?",
|
|
15
15
|
"question_overwrite_content": "Sure to overwrite the following duplicate resources?\n{}",
|
|
16
|
+
"question_stop_build": "Sure to stop the building?",
|
|
17
|
+
"question_stop_build_close_window": "Sure to stop the building and close the window?",
|
|
16
18
|
"information_title": "Info",
|
|
17
19
|
"information_os_content": "Unsupported Operating System",
|
|
18
20
|
"critical_title": "Error",
|
|
@@ -24,6 +26,12 @@
|
|
|
24
26
|
"critical_rename_content": "Failed to rename: {}",
|
|
25
27
|
"critical_open_project": "Failed to open the project. Couldn't find project.pygs.",
|
|
26
28
|
"critical_find_project": "Couldn't find the project.",
|
|
29
|
+
"critical_delete_project": "Couldn't delete the project: {}",
|
|
30
|
+
"critical_main_not_found": "main.py is not found. Please make sure main.py is in the project root directory.",
|
|
31
|
+
"critical_app_icon_not_exist": "App icon not exist",
|
|
32
|
+
"critical_no_output_dir": "Please choose the output dir",
|
|
33
|
+
"critical_output_dir_not_exist": "Output dir does not exist",
|
|
34
|
+
"critical_fail_to_build": "Failed to build the project. Please check the log.",
|
|
27
35
|
"to_be_released": "To be released!"
|
|
28
36
|
},
|
|
29
37
|
|
|
@@ -70,7 +78,8 @@
|
|
|
70
78
|
"documentation": "Documentation",
|
|
71
79
|
"release_notes": "Release Notes",
|
|
72
80
|
"github_repository": "Github Repository",
|
|
73
|
-
"about_pygamestudio": "About Pygame
|
|
81
|
+
"about_pygamestudio": "About Pygame Studio",
|
|
82
|
+
"support_pygamestudio": "Support Pygame Studio"
|
|
74
83
|
},
|
|
75
84
|
|
|
76
85
|
"item": {
|
|
@@ -177,5 +186,21 @@
|
|
|
177
186
|
|
|
178
187
|
"about": {
|
|
179
188
|
"version": "Version {}"
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
"build": {
|
|
192
|
+
"app_name": "App Name",
|
|
193
|
+
"app_name_placeholder": "Please enter the app name",
|
|
194
|
+
"app_icon": "App Icon",
|
|
195
|
+
"app_icon_placeholder": "Please choose the app icon (.png/.ico/.icns)",
|
|
196
|
+
"output_dir": "Output Dir",
|
|
197
|
+
"output_dir_placeholder": "Please choose the output dir",
|
|
198
|
+
"clean_cache": "Clean Cache",
|
|
199
|
+
"build": "Build",
|
|
200
|
+
"open_output_dir": "Open Output Dir",
|
|
201
|
+
"desktop_app": "Desktop App",
|
|
202
|
+
"stop": "Stop",
|
|
203
|
+
"select_app_icon": "Select App Icon",
|
|
204
|
+
"select_output_dir": "Select Output Dir"
|
|
180
205
|
}
|
|
181
206
|
}
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"question_delete_hierarchy_item_content": "是否删除选中的对象?",
|
|
14
14
|
"question_delete_project_content": "是否删除该项目?",
|
|
15
15
|
"question_overwrite_content": "是否覆盖以下重复资源?\n{}",
|
|
16
|
+
"question_stop_build": "是否停止打包?",
|
|
17
|
+
"question_stop_build_close_window": "是否停止打包并关闭窗口?",
|
|
16
18
|
"information_title": "提示",
|
|
17
19
|
"information_os_content": "不支持的操作系统",
|
|
18
20
|
"critical_title": "错误",
|
|
@@ -24,6 +26,12 @@
|
|
|
24
26
|
"critical_rename_content": "重命名失败:{}",
|
|
25
27
|
"critical_open_project": "打开项目失败,找不到project.pygs。",
|
|
26
28
|
"critical_find_project": "找不到该项目。",
|
|
29
|
+
"critical_delete_project": "无法删除项目:{}",
|
|
30
|
+
"critical_app_icon_not_exist": "图标文件不存在",
|
|
31
|
+
"critical_no_output_dir": "请选择输出目录",
|
|
32
|
+
"critical_output_dir_not_exist": "输出目录不存在",
|
|
33
|
+
"critical_main_not_found": "没有找到main.py,请确保main.py位于项目根目录下。",
|
|
34
|
+
"critical_fail_to_build": "项目打包失败,请检查日志。",
|
|
27
35
|
"to_be_released": "即将发布,敬请期待!"
|
|
28
36
|
},
|
|
29
37
|
|
|
@@ -66,11 +74,12 @@
|
|
|
66
74
|
"undo": "撤销",
|
|
67
75
|
"redo": "重做",
|
|
68
76
|
"run": "运行",
|
|
69
|
-
"build": "
|
|
77
|
+
"build": "打包",
|
|
70
78
|
"documentation": "在线文档",
|
|
71
79
|
"release_notes": "更新日志",
|
|
72
80
|
"github_repository": "GitHub仓库",
|
|
73
|
-
"about_pygamestudio": "关于Pygame Studio"
|
|
81
|
+
"about_pygamestudio": "关于Pygame Studio",
|
|
82
|
+
"support_pygamestudio": "支持Pygame Studio"
|
|
74
83
|
},
|
|
75
84
|
|
|
76
85
|
"item": {
|
|
@@ -177,5 +186,21 @@
|
|
|
177
186
|
|
|
178
187
|
"about": {
|
|
179
188
|
"version": "版本{}"
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
"build": {
|
|
192
|
+
"app_name": "应用名称",
|
|
193
|
+
"app_name_placeholder": "请输入应用名称",
|
|
194
|
+
"app_icon": "应用图标",
|
|
195
|
+
"app_icon_placeholder": "请选择应用图标 (.png/.ico/.icns)",
|
|
196
|
+
"output_dir": "输出目录",
|
|
197
|
+
"output_dir_placeholder": "请选择输出目录",
|
|
198
|
+
"clean_cache": "清除缓存",
|
|
199
|
+
"build": "打包",
|
|
200
|
+
"open_output_dir": "打开输出目录",
|
|
201
|
+
"desktop_app": "桌面应用",
|
|
202
|
+
"stop": "停止",
|
|
203
|
+
"select_app_icon": "选择应用图标",
|
|
204
|
+
"select_output_dir": "选择输出目录"
|
|
180
205
|
}
|
|
181
206
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
{pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/qss/dark.qss
RENAMED
|
@@ -120,6 +120,19 @@ QComboBox::down-arrow {
|
|
|
120
120
|
height: 10px;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
+
QComboBox QAbstractItemView {
|
|
124
|
+
background-color: #1e1e1e;
|
|
125
|
+
color: #cccccc;
|
|
126
|
+
border: 1px solid #3c3c3c;
|
|
127
|
+
selection-background-color: #007acc;
|
|
128
|
+
selection-color: #ffffff;
|
|
129
|
+
outline: 0px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
QComboBox QAbstractItemView::item:selected {
|
|
133
|
+
background-color: #007acc;
|
|
134
|
+
}
|
|
135
|
+
|
|
123
136
|
QMenu {
|
|
124
137
|
background-color: #1e1e1e;
|
|
125
138
|
color: #cccccc;
|
|
@@ -128,7 +141,7 @@ QMenu {
|
|
|
128
141
|
}
|
|
129
142
|
|
|
130
143
|
QMenu::item {
|
|
131
|
-
padding: 5px
|
|
144
|
+
padding: 5px 20px 5px 20px;
|
|
132
145
|
border: 1px solid transparent;
|
|
133
146
|
}
|
|
134
147
|
|
|
@@ -141,6 +154,11 @@ QMenu::item:selected {
|
|
|
141
154
|
color: #ffffff;
|
|
142
155
|
}
|
|
143
156
|
|
|
157
|
+
QMenu::icon {
|
|
158
|
+
position: relative;
|
|
159
|
+
left: 15px;
|
|
160
|
+
}
|
|
161
|
+
|
|
144
162
|
QMenu::separator {
|
|
145
163
|
height: 1px;
|
|
146
164
|
background-color: #3c3c3c;
|
|
@@ -322,6 +340,21 @@ QListWidget::item {
|
|
|
322
340
|
height: 30px;
|
|
323
341
|
}
|
|
324
342
|
|
|
343
|
+
QProgressBar {
|
|
344
|
+
border: 1px solid lightgray;
|
|
345
|
+
border-radius: 3px;
|
|
346
|
+
text-align: center;
|
|
347
|
+
background-color: qlineargradient(x1:1, y1:0, x2:1, y2:0.4, stop:0 white, stop:1 #dedede);
|
|
348
|
+
color: #1e1e1e;
|
|
349
|
+
font-weight: bold;
|
|
350
|
+
height: 10px;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
QProgressBar::chunk {
|
|
354
|
+
background-color: qlineargradient(x1:1, y1:0, x2:1, y2:0.4, stop:0 white, stop:1 #007acc);
|
|
355
|
+
border-radius: 2px;
|
|
356
|
+
}
|
|
357
|
+
|
|
325
358
|
/* ----- Window Base ----- */
|
|
326
359
|
QWidget#windowBaseCentralWidget {
|
|
327
360
|
border-radius: 9px;
|
|
@@ -484,6 +517,10 @@ QWidget#inspector QPushButton:pressed {
|
|
|
484
517
|
border-radius: 5px;
|
|
485
518
|
}
|
|
486
519
|
|
|
520
|
+
QWidget#inspectorContainer QLineEdit:disabled {
|
|
521
|
+
color: gray;
|
|
522
|
+
}
|
|
523
|
+
|
|
487
524
|
QWidget#inspectorContainer QLabel {
|
|
488
525
|
background-color: #282828;
|
|
489
526
|
}
|
{pygamestudio-1.0.0.dev1 → pygamestudio-1.0.0.dev2}/src/pygamestudio/common/res/resources.qrc
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<qresource prefix="/">
|
|
3
3
|
<file>images/add_item.png</file>
|
|
4
4
|
<file>images/add.png</file>
|
|
5
|
+
<file>images/browse.png</file>
|
|
5
6
|
<file>images/canvas.png</file>
|
|
6
7
|
<file>images/check.png</file>
|
|
7
8
|
<file>images/clear.png</file>
|
|
@@ -14,11 +15,14 @@
|
|
|
14
15
|
<file>images/eye_closed.png</file>
|
|
15
16
|
<file>images/eye_off.png</file>
|
|
16
17
|
<file>images/eye_open.png</file>
|
|
18
|
+
<file>images/heart.png</file>
|
|
17
19
|
<file>images/import_project.png</file>
|
|
18
20
|
<file>images/info.png</file>
|
|
19
21
|
<file>images/left_arrow.png</file>
|
|
22
|
+
<file>images/line.png</file>
|
|
20
23
|
<file>images/logo.png</file>
|
|
21
24
|
<file>images/maximize.png</file>
|
|
25
|
+
<file>images/maximize_disabled.png</file>
|
|
22
26
|
<file>images/minimize.png</file>
|
|
23
27
|
<file>images/normalize.png</file>
|
|
24
28
|
<file>images/project_icon.png</file>
|