Games-clz 0.1.1__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.
- games_clz-0.1.1/Games_clz.egg-info/PKG-INFO +147 -0
- games_clz-0.1.1/Games_clz.egg-info/SOURCES.txt +43 -0
- games_clz-0.1.1/Games_clz.egg-info/dependency_links.txt +1 -0
- games_clz-0.1.1/Games_clz.egg-info/requires.txt +9 -0
- games_clz-0.1.1/Games_clz.egg-info/top_level.txt +1 -0
- games_clz-0.1.1/LICENSE +21 -0
- games_clz-0.1.1/PKG-INFO +147 -0
- games_clz-0.1.1/README.md +101 -0
- games_clz-0.1.1/games_clz/__init__.py +235 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/__init__.py +440 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/ai.py +709 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/animation.py +321 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/application.py +376 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/audio.py +208 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/builtin_textures.py +606 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/camera.py +16 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/color.py +160 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/entity.py +510 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/gamepad.py +330 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/health.py +660 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/input.py +151 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/mesh.py +3 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/minimap.py +324 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/models.py +286 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/network.py +722 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/particles.py +191 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/physics.py +430 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/prefabs/__init__.py +11 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/prefabs/first_person.py +157 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/prefabs/second_person.py +154 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/prefabs/sky.py +51 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/prefabs/third_person.py +194 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/raycaster.py +571 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/saveload.py +219 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/scene.py +176 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/sprite2d.py +449 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/texture.py +6 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/trigger.py +159 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/ui.py +316 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/util.py +260 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/vector.py +383 -0
- games_clz-0.1.1/games_clz/three_dimensional_games/voice.py +490 -0
- games_clz-0.1.1/games_clz/two_dimensional_games/__init__.py +658 -0
- games_clz-0.1.1/pyproject.toml +35 -0
- games_clz-0.1.1/setup.cfg +4 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Games_clz
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: 简单好用的双模式游戏引擎:内置完整3D引擎和2D引擎,API简洁
|
|
5
|
+
Author-email: clz <your.email@example.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 clz
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://pypi.org/project/Games_clz/
|
|
29
|
+
Project-URL: Bug Tracker, https://pypi.org/project/Games_clz/issues
|
|
30
|
+
Classifier: Programming Language :: Python :: 3
|
|
31
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
32
|
+
Classifier: Operating System :: OS Independent
|
|
33
|
+
Classifier: Topic :: Games/Entertainment
|
|
34
|
+
Requires-Python: >=3.8
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
License-File: LICENSE
|
|
37
|
+
Requires-Dist: panda3d>=1.10.13
|
|
38
|
+
Requires-Dist: Pillow>=9.0
|
|
39
|
+
Requires-Dist: SpeechRecognition>=3.8.1
|
|
40
|
+
Requires-Dist: pyttsx3>=2.90
|
|
41
|
+
Requires-Dist: pygame>=2.1
|
|
42
|
+
Requires-Dist: netifaces>=0.11.0
|
|
43
|
+
Provides-Extra: voice
|
|
44
|
+
Requires-Dist: pyaudio>=0.2.11; extra == "voice"
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
|
|
47
|
+
# Games_clz
|
|
48
|
+
一个简单好用的Python游戏引擎包,**内含完整的三维游戏引擎和二维游戏引擎**,API风格统一简洁,不用记复杂的函数。
|
|
49
|
+
|
|
50
|
+
安装:
|
|
51
|
+
```bash
|
|
52
|
+
pip install Games_clz
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 快速开始
|
|
56
|
+
|
|
57
|
+
### 写3D游戏
|
|
58
|
+
```python
|
|
59
|
+
from games_clz import *
|
|
60
|
+
|
|
61
|
+
# 初始化3D模式
|
|
62
|
+
init(mode='3d', title="我的第一个3D游戏")
|
|
63
|
+
|
|
64
|
+
# 地面
|
|
65
|
+
ground = Entity(model='plane', texture='grass', scale=50, collider='box')
|
|
66
|
+
# 第一人称玩家
|
|
67
|
+
player = FirstPerson(position=(0, 2, 0))
|
|
68
|
+
# 血条和小地图
|
|
69
|
+
Health(player, max_hp=100)
|
|
70
|
+
HealthBar(get_health(player), anchor="top-left")
|
|
71
|
+
Minimap(follow=player, anchor="top-right")
|
|
72
|
+
# 天空盒
|
|
73
|
+
Sky()
|
|
74
|
+
|
|
75
|
+
run()
|
|
76
|
+
```
|
|
77
|
+
操作:WASD移动,空格跳跃,鼠标转视角,Esc退出。
|
|
78
|
+
|
|
79
|
+
### 写2D游戏
|
|
80
|
+
```python
|
|
81
|
+
from games_clz import *
|
|
82
|
+
|
|
83
|
+
# 初始化2D模式
|
|
84
|
+
init(mode='2d', title="我的第一个2D游戏")
|
|
85
|
+
|
|
86
|
+
# 地面和玩家
|
|
87
|
+
ground = Sprite2D(color=color.green, y=-3.5, scale=(20, 1), collider='box', static=True)
|
|
88
|
+
player = Sprite2D(color=color.blue, x=0, y=0, scale=(0.8, 1.2), collider='box', rigidbody=True)
|
|
89
|
+
|
|
90
|
+
def update():
|
|
91
|
+
# A/D移动,空格跳跃
|
|
92
|
+
player.velocity.x = 0
|
|
93
|
+
if held_keys['a']: player.velocity.x = -6
|
|
94
|
+
if held_keys['d']: player.velocity.x = 6
|
|
95
|
+
if held_keys['space'] and player.grounded:
|
|
96
|
+
player.velocity.y = 12
|
|
97
|
+
camera.follow(player)
|
|
98
|
+
|
|
99
|
+
run()
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 包含功能
|
|
103
|
+
|
|
104
|
+
### 3D引擎(three_dimensional_games)
|
|
105
|
+
- ✅ 基础实体、场景、相机系统
|
|
106
|
+
- ✅ 三种视角控制器:第一人称/第二人称/第三人称
|
|
107
|
+
- ✅ 物理系统:碰撞检测、刚体、射线检测
|
|
108
|
+
- ✅ 内置大量免费贴图(草地、砖块、天空等)
|
|
109
|
+
- ✅ 补间动画系统
|
|
110
|
+
- ✅ 粒子特效系统
|
|
111
|
+
- ✅ 音效、背景音乐播放
|
|
112
|
+
- ✅ 触发区/碰撞事件
|
|
113
|
+
- ✅ 存档/读档
|
|
114
|
+
- ✅ 生命值、伤害系统、屏幕血条、世界血条
|
|
115
|
+
- ✅ 小地图/雷达
|
|
116
|
+
- ✅ AI导航网格、自动寻路敌人
|
|
117
|
+
- ✅ 联机功能:公网/局域网开房联机
|
|
118
|
+
- ✅ 高级射线检测、调试画线
|
|
119
|
+
- ✅ 手柄支持
|
|
120
|
+
- ✅ 语音:TTS播报、录音、语音识别、语音聊天
|
|
121
|
+
- ✅ 天空盒
|
|
122
|
+
|
|
123
|
+
### 2D引擎(two_dimensional_games)
|
|
124
|
+
- ✅ 精灵系统(支持贴图/纯色)
|
|
125
|
+
- ✅ 帧动画精灵
|
|
126
|
+
- ✅ AABB物理碰撞、刚体重力、落地检测
|
|
127
|
+
- ✅ 正交相机、平滑跟随
|
|
128
|
+
- ✅ 文字、按钮UI
|
|
129
|
+
- ✅ 粒子特效、爆炸效果
|
|
130
|
+
- ✅ 补间动画
|
|
131
|
+
- ✅ 鼠标、键盘输入
|
|
132
|
+
- ✅ 模块级钩子(def update() / def input())
|
|
133
|
+
- ✅ 自动兜底运行(不写run()也能跑)
|
|
134
|
+
|
|
135
|
+
## 示例
|
|
136
|
+
解压后examples目录下有完整示例:
|
|
137
|
+
- `examples/3d_demo.py`:3D第一人称打敌人类小游戏
|
|
138
|
+
- `examples/2d_platformer.py`:2D平台跳跃吃金币小游戏
|
|
139
|
+
|
|
140
|
+
## 发布到PyPI
|
|
141
|
+
如果你自己修改后要发布:
|
|
142
|
+
```bash
|
|
143
|
+
# 打包
|
|
144
|
+
python -m build
|
|
145
|
+
# 上传(用你的PyPI Token)
|
|
146
|
+
python -m twine upload -u __token__ -p 你的Token dist/*
|
|
147
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
Games_clz.egg-info/PKG-INFO
|
|
5
|
+
Games_clz.egg-info/SOURCES.txt
|
|
6
|
+
Games_clz.egg-info/dependency_links.txt
|
|
7
|
+
Games_clz.egg-info/requires.txt
|
|
8
|
+
Games_clz.egg-info/top_level.txt
|
|
9
|
+
games_clz/__init__.py
|
|
10
|
+
games_clz/three_dimensional_games/__init__.py
|
|
11
|
+
games_clz/three_dimensional_games/ai.py
|
|
12
|
+
games_clz/three_dimensional_games/animation.py
|
|
13
|
+
games_clz/three_dimensional_games/application.py
|
|
14
|
+
games_clz/three_dimensional_games/audio.py
|
|
15
|
+
games_clz/three_dimensional_games/builtin_textures.py
|
|
16
|
+
games_clz/three_dimensional_games/camera.py
|
|
17
|
+
games_clz/three_dimensional_games/color.py
|
|
18
|
+
games_clz/three_dimensional_games/entity.py
|
|
19
|
+
games_clz/three_dimensional_games/gamepad.py
|
|
20
|
+
games_clz/three_dimensional_games/health.py
|
|
21
|
+
games_clz/three_dimensional_games/input.py
|
|
22
|
+
games_clz/three_dimensional_games/mesh.py
|
|
23
|
+
games_clz/three_dimensional_games/minimap.py
|
|
24
|
+
games_clz/three_dimensional_games/models.py
|
|
25
|
+
games_clz/three_dimensional_games/network.py
|
|
26
|
+
games_clz/three_dimensional_games/particles.py
|
|
27
|
+
games_clz/three_dimensional_games/physics.py
|
|
28
|
+
games_clz/three_dimensional_games/raycaster.py
|
|
29
|
+
games_clz/three_dimensional_games/saveload.py
|
|
30
|
+
games_clz/three_dimensional_games/scene.py
|
|
31
|
+
games_clz/three_dimensional_games/sprite2d.py
|
|
32
|
+
games_clz/three_dimensional_games/texture.py
|
|
33
|
+
games_clz/three_dimensional_games/trigger.py
|
|
34
|
+
games_clz/three_dimensional_games/ui.py
|
|
35
|
+
games_clz/three_dimensional_games/util.py
|
|
36
|
+
games_clz/three_dimensional_games/vector.py
|
|
37
|
+
games_clz/three_dimensional_games/voice.py
|
|
38
|
+
games_clz/three_dimensional_games/prefabs/__init__.py
|
|
39
|
+
games_clz/three_dimensional_games/prefabs/first_person.py
|
|
40
|
+
games_clz/three_dimensional_games/prefabs/second_person.py
|
|
41
|
+
games_clz/three_dimensional_games/prefabs/sky.py
|
|
42
|
+
games_clz/three_dimensional_games/prefabs/third_person.py
|
|
43
|
+
games_clz/two_dimensional_games/__init__.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
games_clz
|
games_clz-0.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 clz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
games_clz-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Games_clz
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: 简单好用的双模式游戏引擎:内置完整3D引擎和2D引擎,API简洁
|
|
5
|
+
Author-email: clz <your.email@example.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 clz
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://pypi.org/project/Games_clz/
|
|
29
|
+
Project-URL: Bug Tracker, https://pypi.org/project/Games_clz/issues
|
|
30
|
+
Classifier: Programming Language :: Python :: 3
|
|
31
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
32
|
+
Classifier: Operating System :: OS Independent
|
|
33
|
+
Classifier: Topic :: Games/Entertainment
|
|
34
|
+
Requires-Python: >=3.8
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
License-File: LICENSE
|
|
37
|
+
Requires-Dist: panda3d>=1.10.13
|
|
38
|
+
Requires-Dist: Pillow>=9.0
|
|
39
|
+
Requires-Dist: SpeechRecognition>=3.8.1
|
|
40
|
+
Requires-Dist: pyttsx3>=2.90
|
|
41
|
+
Requires-Dist: pygame>=2.1
|
|
42
|
+
Requires-Dist: netifaces>=0.11.0
|
|
43
|
+
Provides-Extra: voice
|
|
44
|
+
Requires-Dist: pyaudio>=0.2.11; extra == "voice"
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
|
|
47
|
+
# Games_clz
|
|
48
|
+
一个简单好用的Python游戏引擎包,**内含完整的三维游戏引擎和二维游戏引擎**,API风格统一简洁,不用记复杂的函数。
|
|
49
|
+
|
|
50
|
+
安装:
|
|
51
|
+
```bash
|
|
52
|
+
pip install Games_clz
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 快速开始
|
|
56
|
+
|
|
57
|
+
### 写3D游戏
|
|
58
|
+
```python
|
|
59
|
+
from games_clz import *
|
|
60
|
+
|
|
61
|
+
# 初始化3D模式
|
|
62
|
+
init(mode='3d', title="我的第一个3D游戏")
|
|
63
|
+
|
|
64
|
+
# 地面
|
|
65
|
+
ground = Entity(model='plane', texture='grass', scale=50, collider='box')
|
|
66
|
+
# 第一人称玩家
|
|
67
|
+
player = FirstPerson(position=(0, 2, 0))
|
|
68
|
+
# 血条和小地图
|
|
69
|
+
Health(player, max_hp=100)
|
|
70
|
+
HealthBar(get_health(player), anchor="top-left")
|
|
71
|
+
Minimap(follow=player, anchor="top-right")
|
|
72
|
+
# 天空盒
|
|
73
|
+
Sky()
|
|
74
|
+
|
|
75
|
+
run()
|
|
76
|
+
```
|
|
77
|
+
操作:WASD移动,空格跳跃,鼠标转视角,Esc退出。
|
|
78
|
+
|
|
79
|
+
### 写2D游戏
|
|
80
|
+
```python
|
|
81
|
+
from games_clz import *
|
|
82
|
+
|
|
83
|
+
# 初始化2D模式
|
|
84
|
+
init(mode='2d', title="我的第一个2D游戏")
|
|
85
|
+
|
|
86
|
+
# 地面和玩家
|
|
87
|
+
ground = Sprite2D(color=color.green, y=-3.5, scale=(20, 1), collider='box', static=True)
|
|
88
|
+
player = Sprite2D(color=color.blue, x=0, y=0, scale=(0.8, 1.2), collider='box', rigidbody=True)
|
|
89
|
+
|
|
90
|
+
def update():
|
|
91
|
+
# A/D移动,空格跳跃
|
|
92
|
+
player.velocity.x = 0
|
|
93
|
+
if held_keys['a']: player.velocity.x = -6
|
|
94
|
+
if held_keys['d']: player.velocity.x = 6
|
|
95
|
+
if held_keys['space'] and player.grounded:
|
|
96
|
+
player.velocity.y = 12
|
|
97
|
+
camera.follow(player)
|
|
98
|
+
|
|
99
|
+
run()
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 包含功能
|
|
103
|
+
|
|
104
|
+
### 3D引擎(three_dimensional_games)
|
|
105
|
+
- ✅ 基础实体、场景、相机系统
|
|
106
|
+
- ✅ 三种视角控制器:第一人称/第二人称/第三人称
|
|
107
|
+
- ✅ 物理系统:碰撞检测、刚体、射线检测
|
|
108
|
+
- ✅ 内置大量免费贴图(草地、砖块、天空等)
|
|
109
|
+
- ✅ 补间动画系统
|
|
110
|
+
- ✅ 粒子特效系统
|
|
111
|
+
- ✅ 音效、背景音乐播放
|
|
112
|
+
- ✅ 触发区/碰撞事件
|
|
113
|
+
- ✅ 存档/读档
|
|
114
|
+
- ✅ 生命值、伤害系统、屏幕血条、世界血条
|
|
115
|
+
- ✅ 小地图/雷达
|
|
116
|
+
- ✅ AI导航网格、自动寻路敌人
|
|
117
|
+
- ✅ 联机功能:公网/局域网开房联机
|
|
118
|
+
- ✅ 高级射线检测、调试画线
|
|
119
|
+
- ✅ 手柄支持
|
|
120
|
+
- ✅ 语音:TTS播报、录音、语音识别、语音聊天
|
|
121
|
+
- ✅ 天空盒
|
|
122
|
+
|
|
123
|
+
### 2D引擎(two_dimensional_games)
|
|
124
|
+
- ✅ 精灵系统(支持贴图/纯色)
|
|
125
|
+
- ✅ 帧动画精灵
|
|
126
|
+
- ✅ AABB物理碰撞、刚体重力、落地检测
|
|
127
|
+
- ✅ 正交相机、平滑跟随
|
|
128
|
+
- ✅ 文字、按钮UI
|
|
129
|
+
- ✅ 粒子特效、爆炸效果
|
|
130
|
+
- ✅ 补间动画
|
|
131
|
+
- ✅ 鼠标、键盘输入
|
|
132
|
+
- ✅ 模块级钩子(def update() / def input())
|
|
133
|
+
- ✅ 自动兜底运行(不写run()也能跑)
|
|
134
|
+
|
|
135
|
+
## 示例
|
|
136
|
+
解压后examples目录下有完整示例:
|
|
137
|
+
- `examples/3d_demo.py`:3D第一人称打敌人类小游戏
|
|
138
|
+
- `examples/2d_platformer.py`:2D平台跳跃吃金币小游戏
|
|
139
|
+
|
|
140
|
+
## 发布到PyPI
|
|
141
|
+
如果你自己修改后要发布:
|
|
142
|
+
```bash
|
|
143
|
+
# 打包
|
|
144
|
+
python -m build
|
|
145
|
+
# 上传(用你的PyPI Token)
|
|
146
|
+
python -m twine upload -u __token__ -p 你的Token dist/*
|
|
147
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Games_clz
|
|
2
|
+
一个简单好用的Python游戏引擎包,**内含完整的三维游戏引擎和二维游戏引擎**,API风格统一简洁,不用记复杂的函数。
|
|
3
|
+
|
|
4
|
+
安装:
|
|
5
|
+
```bash
|
|
6
|
+
pip install Games_clz
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 快速开始
|
|
10
|
+
|
|
11
|
+
### 写3D游戏
|
|
12
|
+
```python
|
|
13
|
+
from games_clz import *
|
|
14
|
+
|
|
15
|
+
# 初始化3D模式
|
|
16
|
+
init(mode='3d', title="我的第一个3D游戏")
|
|
17
|
+
|
|
18
|
+
# 地面
|
|
19
|
+
ground = Entity(model='plane', texture='grass', scale=50, collider='box')
|
|
20
|
+
# 第一人称玩家
|
|
21
|
+
player = FirstPerson(position=(0, 2, 0))
|
|
22
|
+
# 血条和小地图
|
|
23
|
+
Health(player, max_hp=100)
|
|
24
|
+
HealthBar(get_health(player), anchor="top-left")
|
|
25
|
+
Minimap(follow=player, anchor="top-right")
|
|
26
|
+
# 天空盒
|
|
27
|
+
Sky()
|
|
28
|
+
|
|
29
|
+
run()
|
|
30
|
+
```
|
|
31
|
+
操作:WASD移动,空格跳跃,鼠标转视角,Esc退出。
|
|
32
|
+
|
|
33
|
+
### 写2D游戏
|
|
34
|
+
```python
|
|
35
|
+
from games_clz import *
|
|
36
|
+
|
|
37
|
+
# 初始化2D模式
|
|
38
|
+
init(mode='2d', title="我的第一个2D游戏")
|
|
39
|
+
|
|
40
|
+
# 地面和玩家
|
|
41
|
+
ground = Sprite2D(color=color.green, y=-3.5, scale=(20, 1), collider='box', static=True)
|
|
42
|
+
player = Sprite2D(color=color.blue, x=0, y=0, scale=(0.8, 1.2), collider='box', rigidbody=True)
|
|
43
|
+
|
|
44
|
+
def update():
|
|
45
|
+
# A/D移动,空格跳跃
|
|
46
|
+
player.velocity.x = 0
|
|
47
|
+
if held_keys['a']: player.velocity.x = -6
|
|
48
|
+
if held_keys['d']: player.velocity.x = 6
|
|
49
|
+
if held_keys['space'] and player.grounded:
|
|
50
|
+
player.velocity.y = 12
|
|
51
|
+
camera.follow(player)
|
|
52
|
+
|
|
53
|
+
run()
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 包含功能
|
|
57
|
+
|
|
58
|
+
### 3D引擎(three_dimensional_games)
|
|
59
|
+
- ✅ 基础实体、场景、相机系统
|
|
60
|
+
- ✅ 三种视角控制器:第一人称/第二人称/第三人称
|
|
61
|
+
- ✅ 物理系统:碰撞检测、刚体、射线检测
|
|
62
|
+
- ✅ 内置大量免费贴图(草地、砖块、天空等)
|
|
63
|
+
- ✅ 补间动画系统
|
|
64
|
+
- ✅ 粒子特效系统
|
|
65
|
+
- ✅ 音效、背景音乐播放
|
|
66
|
+
- ✅ 触发区/碰撞事件
|
|
67
|
+
- ✅ 存档/读档
|
|
68
|
+
- ✅ 生命值、伤害系统、屏幕血条、世界血条
|
|
69
|
+
- ✅ 小地图/雷达
|
|
70
|
+
- ✅ AI导航网格、自动寻路敌人
|
|
71
|
+
- ✅ 联机功能:公网/局域网开房联机
|
|
72
|
+
- ✅ 高级射线检测、调试画线
|
|
73
|
+
- ✅ 手柄支持
|
|
74
|
+
- ✅ 语音:TTS播报、录音、语音识别、语音聊天
|
|
75
|
+
- ✅ 天空盒
|
|
76
|
+
|
|
77
|
+
### 2D引擎(two_dimensional_games)
|
|
78
|
+
- ✅ 精灵系统(支持贴图/纯色)
|
|
79
|
+
- ✅ 帧动画精灵
|
|
80
|
+
- ✅ AABB物理碰撞、刚体重力、落地检测
|
|
81
|
+
- ✅ 正交相机、平滑跟随
|
|
82
|
+
- ✅ 文字、按钮UI
|
|
83
|
+
- ✅ 粒子特效、爆炸效果
|
|
84
|
+
- ✅ 补间动画
|
|
85
|
+
- ✅ 鼠标、键盘输入
|
|
86
|
+
- ✅ 模块级钩子(def update() / def input())
|
|
87
|
+
- ✅ 自动兜底运行(不写run()也能跑)
|
|
88
|
+
|
|
89
|
+
## 示例
|
|
90
|
+
解压后examples目录下有完整示例:
|
|
91
|
+
- `examples/3d_demo.py`:3D第一人称打敌人类小游戏
|
|
92
|
+
- `examples/2d_platformer.py`:2D平台跳跃吃金币小游戏
|
|
93
|
+
|
|
94
|
+
## 发布到PyPI
|
|
95
|
+
如果你自己修改后要发布:
|
|
96
|
+
```bash
|
|
97
|
+
# 打包
|
|
98
|
+
python -m build
|
|
99
|
+
# 上传(用你的PyPI Token)
|
|
100
|
+
python -m twine upload -u __token__ -p 你的Token dist/*
|
|
101
|
+
```
|