crystalwindow 1.4.9__tar.gz → 2.4__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.
@@ -0,0 +1,254 @@
1
+ Metadata-Version: 2.4
2
+ Name: crystalwindow
3
+ Version: 2.4
4
+ Summary: Easier Pygame!, Made by Crystal!!
5
+ Author: CrystalBallyHereXD
6
+ Author-email: mavilla.519@gmail.com
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Operating System :: OS Independent
9
+ Requires-Python: >=3.1
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: pygame>=2.3.0
12
+ Dynamic: author
13
+ Dynamic: author-email
14
+ Dynamic: classifier
15
+ Dynamic: description
16
+ Dynamic: description-content-type
17
+ Dynamic: requires-dist
18
+ Dynamic: requires-python
19
+ Dynamic: summary
20
+
21
+ # CRYSTALWINDOW!!!
22
+
23
+ A tiny but mighty Pygame framework that gives u a full window system, GUI magic, physics, and file power — all packed into one clean lil module. made by crystal
24
+
25
+ No setup pain. No folder chaos.
26
+ Just import it. Boom. Instant game window. 🎮
27
+
28
+ # Quick Start
29
+ pip install crystalwindow
30
+
31
+
32
+ then make a new .py file:
33
+
34
+ from crystalwindow import Window # imports everything from crystalwindow (in this case its Window)
35
+
36
+ win = Window(800, 600, "Crystal Demo") # setup: Window(width, height, name, icon=MyIcon.ico)
37
+ win.run() # runs the window loop
38
+ win.quit() # closes it (for RAM n CPU)
39
+
40
+
41
+ Run it. and boom, instant working window.
42
+ Yes, THAT easy.
43
+
44
+ # Easy crystalwindow window + Gui + Text file:
45
+ from crystalwindow import *
46
+
47
+ win = Window(800, 600, "CrystalWindowLib Mega Sandbox")
48
+
49
+ gui = GUIManager()
50
+ toggle1 = Toggle((50, 50, 100, 40), value=False)
51
+ slider1 = Slider((50, 120, 200, 30), min_val=0, max_val=100, value=50)
52
+
53
+ btn1 = Button(rect=(50, 200, 150, 50), text="Click Me!", color=random_color(),
54
+ hover_color=random_color(), callback=lambda: print("Button clicked!"))
55
+ lbl1 = Label((250, 50), "Hello GUI!", color=random_color(), size=24)
56
+
57
+ gui.add(toggle1)
58
+ gui.add(slider1)
59
+ gui.add(btn1)
60
+ gui.add(lbl1)
61
+
62
+ # --- Debug Overlay ---
63
+ debug = DebugOverlay()
64
+
65
+ # --- Camera Shake ---
66
+ shake = CameraShake(intensity=20)
67
+
68
+ # --- Main loop ---
69
+ def update(win):
70
+ gui.update(win)
71
+ gui.draw(win)
72
+
73
+ # --- draw text examples ---
74
+ win.draw_text_later("Normal Text", pos=(400, 50), size=18, color=random_color())
75
+ win.draw_text_later("Bold Text", pos=(400, 80), size=20, color=random_color(), bold=True)
76
+ win.draw_text_later("Italic Text", pos=(400, 110), size=20, color=random_color(), italic=True)
77
+ win.draw_text_later("Bold + Italic", pos=(400, 140), size=22, color=random_color(), bold=True, italic=True)
78
+
79
+ # --- draw toggle/slider values ---
80
+ win.draw_text_later(f"Toggle: {toggle1.value}", pos=(50, 90), size=18)
81
+ win.draw_text_later(f"Slider: {int(slider1.value)}", pos=(50, 160), size=18)
82
+
83
+ # --- draw gradient ---
84
+ gradient_rect(win, (50, 300, 200, 100), (255,0,0), (0,0,255))
85
+
86
+ # --- screen shake example (move a rectangle with shake) ---
87
+ shake.update()
88
+ x_off, y_off = shake.offset
89
+ win.draw_rect((0,255,0), (500+x_off, 300+y_off, 100, 50))
90
+
91
+ # --- draw random name + color ---
92
+ win.draw_text_later(f"Random Name: {random_name()}", pos=(50, 420), size=20, color=random_color())
93
+
94
+ # --- debug overlay ---
95
+ debug.draw(win, fps=int(win.clock.get_fps()))
96
+
97
+ win.run(update)
98
+ win.quit()
99
+
100
+ And now thats how you use it!
101
+
102
+ # Current Variables.
103
+
104
+ # Whats Inside
105
+
106
+ Built-in window manager
107
+
108
+ Built-in GUI (buttons, sliders, toggles, labels)
109
+
110
+ Built-in gravity + physics engine
111
+
112
+ Tilemap system (place & save blocks!)
113
+
114
+ Image loader (with default base64 logo)
115
+
116
+ Safe startup (works even inside PyInstaller)
117
+
118
+ No external dependencies (only pygame)
119
+
120
+ Works offline
121
+
122
+ Minimal syntax
123
+
124
+ Full debug overlay
125
+
126
+ # Window System
127
+ from crystalwindow import *
128
+
129
+ win = Window(800, 600, "My Game", icon="MyIcon.png")
130
+
131
+ def loop(win):
132
+ win.fill((10, 10, 30))
133
+ # draw or update stuff here
134
+
135
+ win.run(loop)
136
+ win.quit()
137
+
138
+ # Features
139
+ * handles events
140
+ * tracks keys + mouse
141
+ * supports fullscreen
142
+ * safe to close anytime
143
+
144
+ # Player Example
145
+ player = Player(100, 100)
146
+
147
+ def loop(win):
148
+ player.update(win.keys)
149
+ player.draw(win.screen)
150
+ move(dx, dy) -> moves player
151
+ take_damage(x) -> takes damage
152
+ heal(x) -> heals
153
+ draw(surface) -> renders sprite
154
+
155
+ # TileMap
156
+ tilemap = TileMap(32)
157
+ tilemap.add_tile(5, 5, "grass")
158
+ tilemap.save("level.json")
159
+ add_tile(x, y, type)
160
+ remove_tile(x, y)
161
+ draw(surface)
162
+ save(file) / load(file)
163
+
164
+ # GUI System
165
+ btn = Button(20, 20, 120, 40, "Click Me!", lambda: print("yo"))
166
+ gui = GUIManager()
167
+ gui.add(btn)
168
+
169
+
170
+ Use built-in stuff like:
171
+
172
+ Button(x, y, w, h, text, onclick)
173
+ Label(x, y, text)
174
+ Toggle(x, y, w, h, text, default=False)
175
+ Slider(x, y, w, min, max, default)
176
+
177
+ # Gravity
178
+ g = Gravity(0.5)
179
+ g.update(player)
180
+
181
+
182
+ makes objects fall realistically. ez.
183
+
184
+ # FileHelper
185
+ save_json("data.json", {"coins": 99})
186
+ data = load_json("data.json")
187
+
188
+
189
+ Also supports:
190
+
191
+ save_pickle / load_pickle
192
+
193
+ FileDialog("save") (tkinter dialog popup)
194
+
195
+ # DrawHelper
196
+ DrawHelper.text(win.screen, "Hello!", (10,10), (255,255,255), 24)
197
+ DrawHelper.rect(win.screen, (100,0,200), (50,50,100,60))
198
+
199
+
200
+ perfect for ui & quick visuals
201
+
202
+ # Debug Tools
203
+ debug = DebugOverlay()
204
+ debug.toggle() # show or hide FPS
205
+ debug.draw(win.screen, {"hp": 100, "fps": win.clock.get_fps()})
206
+
207
+ # Example Game
208
+ from crystalwindow import *
209
+
210
+ win = Window(800, 600, "My Cool Game")
211
+ player = Player(100, 100)
212
+ gravity = Gravity()
213
+
214
+ def update(win):
215
+ win.fill((25, 25, 40))
216
+ player.update(win.keys)
217
+ gravity.update(player)
218
+ player.draw(win.screen)
219
+
220
+ win.run(update)
221
+ win.quit()
222
+
223
+ # Default Logo
224
+
225
+ There is a lil encoded PNG inside the file called:
226
+
227
+ DEFAULT_LOGO_BASE64
228
+
229
+
230
+ Its used when no icon is given.
231
+ Set ur own like:
232
+
233
+ Window(800, 600, "My Window", icon="MyIcon.png")
234
+
235
+
236
+ or do whatever you want.. i guess.
237
+
238
+ # Example Integration
239
+ from crystalwindow import Window
240
+
241
+ win = Window(800, 600, "My Window", icon="MyIcon.png")
242
+
243
+ while win.running:
244
+ win.check_events()
245
+ win.fill((10, 10, 20))
246
+ win.run()
247
+ win.quit()
248
+
249
+ # Credits
250
+
251
+ Made by: CrystalBallyHereXD
252
+ Framework: CrystalWindow
253
+ Powered by: Pygame
254
+ License: Free to use, modify, and vibe with it!
@@ -0,0 +1,234 @@
1
+ # CRYSTALWINDOW!!!
2
+
3
+ A tiny but mighty Pygame framework that gives u a full window system, GUI magic, physics, and file power — all packed into one clean lil module. made by crystal
4
+
5
+ No setup pain. No folder chaos.
6
+ Just import it. Boom. Instant game window. 🎮
7
+
8
+ # Quick Start
9
+ pip install crystalwindow
10
+
11
+
12
+ then make a new .py file:
13
+
14
+ from crystalwindow import Window # imports everything from crystalwindow (in this case its Window)
15
+
16
+ win = Window(800, 600, "Crystal Demo") # setup: Window(width, height, name, icon=MyIcon.ico)
17
+ win.run() # runs the window loop
18
+ win.quit() # closes it (for RAM n CPU)
19
+
20
+
21
+ Run it. and boom, instant working window.
22
+ Yes, THAT easy.
23
+
24
+ # Easy crystalwindow window + Gui + Text file:
25
+ from crystalwindow import *
26
+
27
+ win = Window(800, 600, "CrystalWindowLib Mega Sandbox")
28
+
29
+ gui = GUIManager()
30
+ toggle1 = Toggle((50, 50, 100, 40), value=False)
31
+ slider1 = Slider((50, 120, 200, 30), min_val=0, max_val=100, value=50)
32
+
33
+ btn1 = Button(rect=(50, 200, 150, 50), text="Click Me!", color=random_color(),
34
+ hover_color=random_color(), callback=lambda: print("Button clicked!"))
35
+ lbl1 = Label((250, 50), "Hello GUI!", color=random_color(), size=24)
36
+
37
+ gui.add(toggle1)
38
+ gui.add(slider1)
39
+ gui.add(btn1)
40
+ gui.add(lbl1)
41
+
42
+ # --- Debug Overlay ---
43
+ debug = DebugOverlay()
44
+
45
+ # --- Camera Shake ---
46
+ shake = CameraShake(intensity=20)
47
+
48
+ # --- Main loop ---
49
+ def update(win):
50
+ gui.update(win)
51
+ gui.draw(win)
52
+
53
+ # --- draw text examples ---
54
+ win.draw_text_later("Normal Text", pos=(400, 50), size=18, color=random_color())
55
+ win.draw_text_later("Bold Text", pos=(400, 80), size=20, color=random_color(), bold=True)
56
+ win.draw_text_later("Italic Text", pos=(400, 110), size=20, color=random_color(), italic=True)
57
+ win.draw_text_later("Bold + Italic", pos=(400, 140), size=22, color=random_color(), bold=True, italic=True)
58
+
59
+ # --- draw toggle/slider values ---
60
+ win.draw_text_later(f"Toggle: {toggle1.value}", pos=(50, 90), size=18)
61
+ win.draw_text_later(f"Slider: {int(slider1.value)}", pos=(50, 160), size=18)
62
+
63
+ # --- draw gradient ---
64
+ gradient_rect(win, (50, 300, 200, 100), (255,0,0), (0,0,255))
65
+
66
+ # --- screen shake example (move a rectangle with shake) ---
67
+ shake.update()
68
+ x_off, y_off = shake.offset
69
+ win.draw_rect((0,255,0), (500+x_off, 300+y_off, 100, 50))
70
+
71
+ # --- draw random name + color ---
72
+ win.draw_text_later(f"Random Name: {random_name()}", pos=(50, 420), size=20, color=random_color())
73
+
74
+ # --- debug overlay ---
75
+ debug.draw(win, fps=int(win.clock.get_fps()))
76
+
77
+ win.run(update)
78
+ win.quit()
79
+
80
+ And now thats how you use it!
81
+
82
+ # Current Variables.
83
+
84
+ # Whats Inside
85
+
86
+ Built-in window manager
87
+
88
+ Built-in GUI (buttons, sliders, toggles, labels)
89
+
90
+ Built-in gravity + physics engine
91
+
92
+ Tilemap system (place & save blocks!)
93
+
94
+ Image loader (with default base64 logo)
95
+
96
+ Safe startup (works even inside PyInstaller)
97
+
98
+ No external dependencies (only pygame)
99
+
100
+ Works offline
101
+
102
+ Minimal syntax
103
+
104
+ Full debug overlay
105
+
106
+ # Window System
107
+ from crystalwindow import *
108
+
109
+ win = Window(800, 600, "My Game", icon="MyIcon.png")
110
+
111
+ def loop(win):
112
+ win.fill((10, 10, 30))
113
+ # draw or update stuff here
114
+
115
+ win.run(loop)
116
+ win.quit()
117
+
118
+ # Features
119
+ * handles events
120
+ * tracks keys + mouse
121
+ * supports fullscreen
122
+ * safe to close anytime
123
+
124
+ # Player Example
125
+ player = Player(100, 100)
126
+
127
+ def loop(win):
128
+ player.update(win.keys)
129
+ player.draw(win.screen)
130
+ move(dx, dy) -> moves player
131
+ take_damage(x) -> takes damage
132
+ heal(x) -> heals
133
+ draw(surface) -> renders sprite
134
+
135
+ # TileMap
136
+ tilemap = TileMap(32)
137
+ tilemap.add_tile(5, 5, "grass")
138
+ tilemap.save("level.json")
139
+ add_tile(x, y, type)
140
+ remove_tile(x, y)
141
+ draw(surface)
142
+ save(file) / load(file)
143
+
144
+ # GUI System
145
+ btn = Button(20, 20, 120, 40, "Click Me!", lambda: print("yo"))
146
+ gui = GUIManager()
147
+ gui.add(btn)
148
+
149
+
150
+ Use built-in stuff like:
151
+
152
+ Button(x, y, w, h, text, onclick)
153
+ Label(x, y, text)
154
+ Toggle(x, y, w, h, text, default=False)
155
+ Slider(x, y, w, min, max, default)
156
+
157
+ # Gravity
158
+ g = Gravity(0.5)
159
+ g.update(player)
160
+
161
+
162
+ makes objects fall realistically. ez.
163
+
164
+ # FileHelper
165
+ save_json("data.json", {"coins": 99})
166
+ data = load_json("data.json")
167
+
168
+
169
+ Also supports:
170
+
171
+ save_pickle / load_pickle
172
+
173
+ FileDialog("save") (tkinter dialog popup)
174
+
175
+ # DrawHelper
176
+ DrawHelper.text(win.screen, "Hello!", (10,10), (255,255,255), 24)
177
+ DrawHelper.rect(win.screen, (100,0,200), (50,50,100,60))
178
+
179
+
180
+ perfect for ui & quick visuals
181
+
182
+ # Debug Tools
183
+ debug = DebugOverlay()
184
+ debug.toggle() # show or hide FPS
185
+ debug.draw(win.screen, {"hp": 100, "fps": win.clock.get_fps()})
186
+
187
+ # Example Game
188
+ from crystalwindow import *
189
+
190
+ win = Window(800, 600, "My Cool Game")
191
+ player = Player(100, 100)
192
+ gravity = Gravity()
193
+
194
+ def update(win):
195
+ win.fill((25, 25, 40))
196
+ player.update(win.keys)
197
+ gravity.update(player)
198
+ player.draw(win.screen)
199
+
200
+ win.run(update)
201
+ win.quit()
202
+
203
+ # Default Logo
204
+
205
+ There is a lil encoded PNG inside the file called:
206
+
207
+ DEFAULT_LOGO_BASE64
208
+
209
+
210
+ Its used when no icon is given.
211
+ Set ur own like:
212
+
213
+ Window(800, 600, "My Window", icon="MyIcon.png")
214
+
215
+
216
+ or do whatever you want.. i guess.
217
+
218
+ # Example Integration
219
+ from crystalwindow import Window
220
+
221
+ win = Window(800, 600, "My Window", icon="MyIcon.png")
222
+
223
+ while win.running:
224
+ win.check_events()
225
+ win.fill((10, 10, 20))
226
+ win.run()
227
+ win.quit()
228
+
229
+ # Credits
230
+
231
+ Made by: CrystalBallyHereXD
232
+ Framework: CrystalWindow
233
+ Powered by: Pygame
234
+ License: Free to use, modify, and vibe with it!
@@ -0,0 +1,254 @@
1
+ Metadata-Version: 2.4
2
+ Name: crystalwindow
3
+ Version: 2.4
4
+ Summary: Easier Pygame!, Made by Crystal!!
5
+ Author: CrystalBallyHereXD
6
+ Author-email: mavilla.519@gmail.com
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Operating System :: OS Independent
9
+ Requires-Python: >=3.1
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: pygame>=2.3.0
12
+ Dynamic: author
13
+ Dynamic: author-email
14
+ Dynamic: classifier
15
+ Dynamic: description
16
+ Dynamic: description-content-type
17
+ Dynamic: requires-dist
18
+ Dynamic: requires-python
19
+ Dynamic: summary
20
+
21
+ # CRYSTALWINDOW!!!
22
+
23
+ A tiny but mighty Pygame framework that gives u a full window system, GUI magic, physics, and file power — all packed into one clean lil module. made by crystal
24
+
25
+ No setup pain. No folder chaos.
26
+ Just import it. Boom. Instant game window. 🎮
27
+
28
+ # Quick Start
29
+ pip install crystalwindow
30
+
31
+
32
+ then make a new .py file:
33
+
34
+ from crystalwindow import Window # imports everything from crystalwindow (in this case its Window)
35
+
36
+ win = Window(800, 600, "Crystal Demo") # setup: Window(width, height, name, icon=MyIcon.ico)
37
+ win.run() # runs the window loop
38
+ win.quit() # closes it (for RAM n CPU)
39
+
40
+
41
+ Run it. and boom, instant working window.
42
+ Yes, THAT easy.
43
+
44
+ # Easy crystalwindow window + Gui + Text file:
45
+ from crystalwindow import *
46
+
47
+ win = Window(800, 600, "CrystalWindowLib Mega Sandbox")
48
+
49
+ gui = GUIManager()
50
+ toggle1 = Toggle((50, 50, 100, 40), value=False)
51
+ slider1 = Slider((50, 120, 200, 30), min_val=0, max_val=100, value=50)
52
+
53
+ btn1 = Button(rect=(50, 200, 150, 50), text="Click Me!", color=random_color(),
54
+ hover_color=random_color(), callback=lambda: print("Button clicked!"))
55
+ lbl1 = Label((250, 50), "Hello GUI!", color=random_color(), size=24)
56
+
57
+ gui.add(toggle1)
58
+ gui.add(slider1)
59
+ gui.add(btn1)
60
+ gui.add(lbl1)
61
+
62
+ # --- Debug Overlay ---
63
+ debug = DebugOverlay()
64
+
65
+ # --- Camera Shake ---
66
+ shake = CameraShake(intensity=20)
67
+
68
+ # --- Main loop ---
69
+ def update(win):
70
+ gui.update(win)
71
+ gui.draw(win)
72
+
73
+ # --- draw text examples ---
74
+ win.draw_text_later("Normal Text", pos=(400, 50), size=18, color=random_color())
75
+ win.draw_text_later("Bold Text", pos=(400, 80), size=20, color=random_color(), bold=True)
76
+ win.draw_text_later("Italic Text", pos=(400, 110), size=20, color=random_color(), italic=True)
77
+ win.draw_text_later("Bold + Italic", pos=(400, 140), size=22, color=random_color(), bold=True, italic=True)
78
+
79
+ # --- draw toggle/slider values ---
80
+ win.draw_text_later(f"Toggle: {toggle1.value}", pos=(50, 90), size=18)
81
+ win.draw_text_later(f"Slider: {int(slider1.value)}", pos=(50, 160), size=18)
82
+
83
+ # --- draw gradient ---
84
+ gradient_rect(win, (50, 300, 200, 100), (255,0,0), (0,0,255))
85
+
86
+ # --- screen shake example (move a rectangle with shake) ---
87
+ shake.update()
88
+ x_off, y_off = shake.offset
89
+ win.draw_rect((0,255,0), (500+x_off, 300+y_off, 100, 50))
90
+
91
+ # --- draw random name + color ---
92
+ win.draw_text_later(f"Random Name: {random_name()}", pos=(50, 420), size=20, color=random_color())
93
+
94
+ # --- debug overlay ---
95
+ debug.draw(win, fps=int(win.clock.get_fps()))
96
+
97
+ win.run(update)
98
+ win.quit()
99
+
100
+ And now thats how you use it!
101
+
102
+ # Current Variables.
103
+
104
+ # Whats Inside
105
+
106
+ Built-in window manager
107
+
108
+ Built-in GUI (buttons, sliders, toggles, labels)
109
+
110
+ Built-in gravity + physics engine
111
+
112
+ Tilemap system (place & save blocks!)
113
+
114
+ Image loader (with default base64 logo)
115
+
116
+ Safe startup (works even inside PyInstaller)
117
+
118
+ No external dependencies (only pygame)
119
+
120
+ Works offline
121
+
122
+ Minimal syntax
123
+
124
+ Full debug overlay
125
+
126
+ # Window System
127
+ from crystalwindow import *
128
+
129
+ win = Window(800, 600, "My Game", icon="MyIcon.png")
130
+
131
+ def loop(win):
132
+ win.fill((10, 10, 30))
133
+ # draw or update stuff here
134
+
135
+ win.run(loop)
136
+ win.quit()
137
+
138
+ # Features
139
+ * handles events
140
+ * tracks keys + mouse
141
+ * supports fullscreen
142
+ * safe to close anytime
143
+
144
+ # Player Example
145
+ player = Player(100, 100)
146
+
147
+ def loop(win):
148
+ player.update(win.keys)
149
+ player.draw(win.screen)
150
+ move(dx, dy) -> moves player
151
+ take_damage(x) -> takes damage
152
+ heal(x) -> heals
153
+ draw(surface) -> renders sprite
154
+
155
+ # TileMap
156
+ tilemap = TileMap(32)
157
+ tilemap.add_tile(5, 5, "grass")
158
+ tilemap.save("level.json")
159
+ add_tile(x, y, type)
160
+ remove_tile(x, y)
161
+ draw(surface)
162
+ save(file) / load(file)
163
+
164
+ # GUI System
165
+ btn = Button(20, 20, 120, 40, "Click Me!", lambda: print("yo"))
166
+ gui = GUIManager()
167
+ gui.add(btn)
168
+
169
+
170
+ Use built-in stuff like:
171
+
172
+ Button(x, y, w, h, text, onclick)
173
+ Label(x, y, text)
174
+ Toggle(x, y, w, h, text, default=False)
175
+ Slider(x, y, w, min, max, default)
176
+
177
+ # Gravity
178
+ g = Gravity(0.5)
179
+ g.update(player)
180
+
181
+
182
+ makes objects fall realistically. ez.
183
+
184
+ # FileHelper
185
+ save_json("data.json", {"coins": 99})
186
+ data = load_json("data.json")
187
+
188
+
189
+ Also supports:
190
+
191
+ save_pickle / load_pickle
192
+
193
+ FileDialog("save") (tkinter dialog popup)
194
+
195
+ # DrawHelper
196
+ DrawHelper.text(win.screen, "Hello!", (10,10), (255,255,255), 24)
197
+ DrawHelper.rect(win.screen, (100,0,200), (50,50,100,60))
198
+
199
+
200
+ perfect for ui & quick visuals
201
+
202
+ # Debug Tools
203
+ debug = DebugOverlay()
204
+ debug.toggle() # show or hide FPS
205
+ debug.draw(win.screen, {"hp": 100, "fps": win.clock.get_fps()})
206
+
207
+ # Example Game
208
+ from crystalwindow import *
209
+
210
+ win = Window(800, 600, "My Cool Game")
211
+ player = Player(100, 100)
212
+ gravity = Gravity()
213
+
214
+ def update(win):
215
+ win.fill((25, 25, 40))
216
+ player.update(win.keys)
217
+ gravity.update(player)
218
+ player.draw(win.screen)
219
+
220
+ win.run(update)
221
+ win.quit()
222
+
223
+ # Default Logo
224
+
225
+ There is a lil encoded PNG inside the file called:
226
+
227
+ DEFAULT_LOGO_BASE64
228
+
229
+
230
+ Its used when no icon is given.
231
+ Set ur own like:
232
+
233
+ Window(800, 600, "My Window", icon="MyIcon.png")
234
+
235
+
236
+ or do whatever you want.. i guess.
237
+
238
+ # Example Integration
239
+ from crystalwindow import Window
240
+
241
+ win = Window(800, 600, "My Window", icon="MyIcon.png")
242
+
243
+ while win.running:
244
+ win.check_events()
245
+ win.fill((10, 10, 20))
246
+ win.run()
247
+ win.quit()
248
+
249
+ # Credits
250
+
251
+ Made by: CrystalBallyHereXD
252
+ Framework: CrystalWindow
253
+ Powered by: Pygame
254
+ License: Free to use, modify, and vibe with it!
@@ -2,15 +2,16 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="crystalwindow", # this is the name ppl will pip install
5
- version="1.4.9", # update when u change stuff
5
+ version="2.4", # update when u change stuff
6
6
  packages=find_packages(include=["CrystalWindow", "CrystalWindow.*"]),
7
7
  include_package_data=True,
8
- install_requires=["pygame>=2.3.0"], # cuz ur lib uses pygame
8
+ install_requires=["pygame>=2.3.0"],
9
9
  author="CrystalBallyHereXD",
10
- description="pygame but remade, easy window/player/tile handling",
10
+ author_email="mavilla.519@gmail.com",
11
+ description="Easier Pygame!, Made by Crystal!!",
11
12
  long_description=open("README.md").read(),
12
13
  long_description_content_type="text/markdown",
13
- python_requires='>=3.8',
14
+ python_requires='>=3.1',
14
15
  classifiers=[
15
16
  "Programming Language :: Python :: 3",
16
17
  "Operating System :: OS Independent",
@@ -1,77 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: crystalwindow
3
- Version: 1.4.9
4
- Summary: pygame but remade, easy window/player/tile handling
5
- Author: CrystalBallyHereXD
6
- Classifier: Programming Language :: Python :: 3
7
- Classifier: Operating System :: OS Independent
8
- Requires-Python: >=3.8
9
- Description-Content-Type: text/markdown
10
- Requires-Dist: pygame>=2.3.0
11
- Dynamic: author
12
- Dynamic: classifier
13
- Dynamic: description
14
- Dynamic: description-content-type
15
- Dynamic: requires-dist
16
- Dynamic: requires-python
17
- Dynamic: summary
18
-
19
- 🧊 CrystalWindow (Single-File Edition)
20
-
21
- A tiny but mighty Pygame framework that gives u a full window system, rendering, and GUI power — all packed into one file.
22
- No setup pain. No folder chaos. Just import, and boom 💥, instant window.
23
-
24
- 🚀 Quick Start
25
- pip install crystalwindow
26
-
27
- Then in ur Python script:
28
-
29
- from CrystalWindow import Window
30
-
31
- # create window
32
- win = Window(800, 600, "My Cool Game")
33
-
34
- # main loop
35
- while win.running:
36
- win.check_events()
37
- win.fill((0, 0, 50))
38
- win.update()
39
-
40
-
41
- 🌀 That’s it. Run it, and boom — instant working window.
42
-
43
- 🧩 Features
44
-
45
- ✅ Built-in window manager
46
- ✅ Built-in image & icon loader (with default base64 logo)
47
- ✅ File-safe startup (even inside PyInstaller)
48
- ✅ Works offline — no extra libs
49
- ✅ Minimal and clean syntax
50
-
51
- 💾 Default Logo
52
-
53
- The file includes a variable named DEFAULT_LOGO_BASE64 — a lil encoded PNG used when no icon is found.
54
-
55
- Use it like: Window(800, 600, "My Window", icon=MyIcon.png)
56
-
57
- Boom 💥 — u can show it, set it as a window icon, or meme it if u want.
58
-
59
- 🧠 Example Integration
60
-
61
- You can use it as part of ur project (like a game, an editor, or a tool):
62
-
63
- from CrystalWindow import Window
64
-
65
- win = Window(800, 600, "My Window", icon=MyIcon.png)
66
-
67
- while win.running:
68
- win.check_events()
69
- win.fill((10, 10, 20))
70
- win.update()
71
-
72
- 🧊 Credits
73
-
74
- 💻 Made by: Crystal Friendo
75
- 🌀 Framework: CrystalWindow
76
- 🎨 Powered by: Pygame
77
- ✨ License: Free to use, modify, and vibe with
@@ -1,59 +0,0 @@
1
- 🧊 CrystalWindow (Single-File Edition)
2
-
3
- A tiny but mighty Pygame framework that gives u a full window system, rendering, and GUI power — all packed into one file.
4
- No setup pain. No folder chaos. Just import, and boom 💥, instant window.
5
-
6
- 🚀 Quick Start
7
- pip install crystalwindow
8
-
9
- Then in ur Python script:
10
-
11
- from CrystalWindow import Window
12
-
13
- # create window
14
- win = Window(800, 600, "My Cool Game")
15
-
16
- # main loop
17
- while win.running:
18
- win.check_events()
19
- win.fill((0, 0, 50))
20
- win.update()
21
-
22
-
23
- 🌀 That’s it. Run it, and boom — instant working window.
24
-
25
- 🧩 Features
26
-
27
- ✅ Built-in window manager
28
- ✅ Built-in image & icon loader (with default base64 logo)
29
- ✅ File-safe startup (even inside PyInstaller)
30
- ✅ Works offline — no extra libs
31
- ✅ Minimal and clean syntax
32
-
33
- 💾 Default Logo
34
-
35
- The file includes a variable named DEFAULT_LOGO_BASE64 — a lil encoded PNG used when no icon is found.
36
-
37
- Use it like: Window(800, 600, "My Window", icon=MyIcon.png)
38
-
39
- Boom 💥 — u can show it, set it as a window icon, or meme it if u want.
40
-
41
- 🧠 Example Integration
42
-
43
- You can use it as part of ur project (like a game, an editor, or a tool):
44
-
45
- from CrystalWindow import Window
46
-
47
- win = Window(800, 600, "My Window", icon=MyIcon.png)
48
-
49
- while win.running:
50
- win.check_events()
51
- win.fill((10, 10, 20))
52
- win.update()
53
-
54
- 🧊 Credits
55
-
56
- 💻 Made by: Crystal Friendo
57
- 🌀 Framework: CrystalWindow
58
- 🎨 Powered by: Pygame
59
- ✨ License: Free to use, modify, and vibe with
@@ -1,77 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: crystalwindow
3
- Version: 1.4.9
4
- Summary: pygame but remade, easy window/player/tile handling
5
- Author: CrystalBallyHereXD
6
- Classifier: Programming Language :: Python :: 3
7
- Classifier: Operating System :: OS Independent
8
- Requires-Python: >=3.8
9
- Description-Content-Type: text/markdown
10
- Requires-Dist: pygame>=2.3.0
11
- Dynamic: author
12
- Dynamic: classifier
13
- Dynamic: description
14
- Dynamic: description-content-type
15
- Dynamic: requires-dist
16
- Dynamic: requires-python
17
- Dynamic: summary
18
-
19
- 🧊 CrystalWindow (Single-File Edition)
20
-
21
- A tiny but mighty Pygame framework that gives u a full window system, rendering, and GUI power — all packed into one file.
22
- No setup pain. No folder chaos. Just import, and boom 💥, instant window.
23
-
24
- 🚀 Quick Start
25
- pip install crystalwindow
26
-
27
- Then in ur Python script:
28
-
29
- from CrystalWindow import Window
30
-
31
- # create window
32
- win = Window(800, 600, "My Cool Game")
33
-
34
- # main loop
35
- while win.running:
36
- win.check_events()
37
- win.fill((0, 0, 50))
38
- win.update()
39
-
40
-
41
- 🌀 That’s it. Run it, and boom — instant working window.
42
-
43
- 🧩 Features
44
-
45
- ✅ Built-in window manager
46
- ✅ Built-in image & icon loader (with default base64 logo)
47
- ✅ File-safe startup (even inside PyInstaller)
48
- ✅ Works offline — no extra libs
49
- ✅ Minimal and clean syntax
50
-
51
- 💾 Default Logo
52
-
53
- The file includes a variable named DEFAULT_LOGO_BASE64 — a lil encoded PNG used when no icon is found.
54
-
55
- Use it like: Window(800, 600, "My Window", icon=MyIcon.png)
56
-
57
- Boom 💥 — u can show it, set it as a window icon, or meme it if u want.
58
-
59
- 🧠 Example Integration
60
-
61
- You can use it as part of ur project (like a game, an editor, or a tool):
62
-
63
- from CrystalWindow import Window
64
-
65
- win = Window(800, 600, "My Window", icon=MyIcon.png)
66
-
67
- while win.running:
68
- win.check_events()
69
- win.fill((10, 10, 20))
70
- win.update()
71
-
72
- 🧊 Credits
73
-
74
- 💻 Made by: Crystal Friendo
75
- 🌀 Framework: CrystalWindow
76
- 🎨 Powered by: Pygame
77
- ✨ License: Free to use, modify, and vibe with
File without changes
File without changes