crystalwindow 5.6__py3-none-any.whl → 5.7__py3-none-any.whl

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.
crystalwindow/__init__.py CHANGED
@@ -67,6 +67,8 @@ from .apphelper import GameAppHelper
67
67
  # === System ===
68
68
  from .System import System, Watchdog
69
69
 
70
+ # === Score System ===
71
+ from .scores import Score
70
72
 
71
73
  __all__ = [
72
74
  # --- Core ---
@@ -122,4 +124,7 @@ __all__ = [
122
124
 
123
125
  # --- System ---
124
126
  "System", "Watchdog",
127
+
128
+ # --- Scores ---
129
+ "Score",
125
130
  ]
@@ -46,11 +46,11 @@ def toggle_fly():
46
46
  fly_button.text = f"Fly: {'ON' if fly_mode else 'OFF'}"
47
47
 
48
48
  # create buttons
49
- fly_button = Button(rect=(35, 60, 180, 40),
49
+ fly_button = Button((35, 60), (180, 40),
50
50
  text="Fly: OFF",
51
51
  color=(150,150,150),
52
52
  hover_color=(200,200,200),
53
- callback=toggle_fly)
53
+ )
54
54
 
55
55
  gui.add(fly_button)
56
56
 
@@ -103,8 +103,9 @@ def update(win):
103
103
 
104
104
  if enemy.collide_with(player):
105
105
  player.hp -= enemy.dmg
106
- if player.dead:
107
- player.respawn(win)
106
+ if player.hp == 0:
107
+ player.redraw(win, new_pos=(0,0))
108
+ player.hp = 100
108
109
 
109
110
  win.draw_text(f"CurrentHP: {player.hp}", font="Arial", size=16, color=(255, 255, 255))
110
111
  # -------------------------------
crystalwindow/objects.py CHANGED
@@ -177,3 +177,19 @@ class Enemy(Sprite):
177
177
  if self.cooldown <= 0:
178
178
  player.take_damage(self.dmg)
179
179
  self.cooldown = self.cooldown_max
180
+
181
+ # the X and Y is an check like if you want the enemy to chase the player horizontally or vertaically or both like chase_player(player, x=True, y=False) so it chases the player only thru horizontal
182
+ def chase_player(self, obj, mode = "xy"):
183
+ if mode == "x" or mode == "xy":
184
+ if obj.x < self.x:
185
+ self.x -= self.speed
186
+ elif obj.x > self.x:
187
+ self.x += self.speed
188
+
189
+ if mode == "y" or mode == "xy":
190
+ if obj.y < self.y:
191
+ self.y -= self.speed
192
+ elif obj.y > self.y:
193
+ self.y += self.speed
194
+
195
+ self.pos = (self.x, self.y)
@@ -0,0 +1,35 @@
1
+ class Score:
2
+ def __init__(self, name: str, value: int = 0, max_value: int | None = None):
3
+ self.name = name
4
+ self.value = value
5
+ self.max_value = max_value
6
+
7
+ def __str__(self):
8
+ return f"{self.name}: {self.value}"
9
+
10
+
11
+ def score_up(self, amount: int = 1):
12
+ self.value += amount
13
+ if self.max_value is not None:
14
+ self.value = min(self.value, self.max_value)
15
+
16
+ def reset(self):
17
+ self.value = 0
18
+
19
+ def score_down(self, amount: int = 1):
20
+ self.value = max(0, self.value - amount)
21
+
22
+ def set_score(self, value: int):
23
+ self.value = value
24
+ if self.max_value is not None:
25
+ self.value = min(self.value, self.max_value)
26
+ def set_maxv(self, value: int):
27
+ self.max_value = value
28
+ if self.value > self.max_value:
29
+ self.value = self.max_value
30
+
31
+ def get_score(name: str, scores: list[Score]) -> Score | None:
32
+ for score in scores:
33
+ if score.name == name:
34
+ return score
35
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crystalwindow
3
- Version: 5.6
3
+ Version: 5.7
4
4
  Summary: A Tkinter powered window + GUI toolkit made by Crystal (ME)! Easier apps, smoother UI and all-in-one helpers!, Gui, Buttons, FileHelper, Sprites, Animations, Colors, Math, Gravity, Camera, 3D and more!
5
5
  Home-page: https://pypi.org/project/crystalwindow/
6
6
  Author: CrystalBallyHereXD
@@ -1,7 +1,7 @@
1
1
  crystalwindow/FileHelper.py,sha256=U20iwND4jX1y91TOK46e8MPH8xyw7GOrZ697nPEnOPk,10706
2
2
  crystalwindow/Fonts.py,sha256=XGqmM3GaauM5a74BtqhKk9zzKgQPcHyN3vcOP1TeoOs,954
3
3
  crystalwindow/System.py,sha256=-ecjzVlTH4ncNnZ_SDNfvqoQLeh8Zefy9laojpQKUUk,4045
4
- crystalwindow/__init__.py,sha256=qG6tCqCZXpv4qzbSgG-EusDkYp41rwszFugbG4MOOG8,3262
4
+ crystalwindow/__init__.py,sha256=TPZxsnfmii8ju57zd6tbmuVkiY4v5FVAriZ-CPQHW6Q,3351
5
5
  crystalwindow/ai.py,sha256=YIt6dNe1QljSAlNECCVa3DMUSIqQEJRIAAbQpYqFNNo,11525
6
6
  crystalwindow/animation.py,sha256=zHjrdBXQeyNaLAuaGPldJueX05OZ5j31YR8NizmR0uQ,427
7
7
  crystalwindow/apphelper.py,sha256=CAcX5n0Jq7zdBMFZkwbMt3_M0mBVVZRoXldOcXsZan4,2924
@@ -22,7 +22,8 @@ crystalwindow/gui.py,sha256=9JA25IztgqSYN1NnWVKK99G0rlEosXf2ATWww2rUZIQ,5353
22
22
  crystalwindow/gui_ext.py,sha256=JctpNPr7gtGdro3csyUo9ft3FFArj3JhkVlgKF0lyME,3407
23
23
  crystalwindow/math.py,sha256=AGhLGkPWozNOMlSieF5u8jSDY0qakOPJIi5aWI9P91o,1598
24
24
  crystalwindow/messagebus.py,sha256=9K2P_TkdQ1rt-oouIkRg_XHwMTwykttBt-9gFYaItyI,696
25
- crystalwindow/objects.py,sha256=InChyxjOWya-XdYXGIAn9rp0waQkLvhTsRWZ0ANYHIU,5606
25
+ crystalwindow/objects.py,sha256=BWqjlxOXpaCGeaAocFL5L9Qh-a_MRjbN6Qb-Vd7R0K8,6262
26
+ crystalwindow/scores.py,sha256=O5E-rceNEaRpsC3XZ2PpE5gsLvJk86f4ChA5UNdd4b0,1069
26
27
  crystalwindow/sprites.py,sha256=IADCQetFDQoat3qGpKkH93TdtqqgldfHl4N0HKX1Ajc,7480
27
28
  crystalwindow/tilemap.py,sha256=endJ8KcbP9EjPvL9qWsOpV4jc_Re1yH080aUyDkwufA,3378
28
29
  crystalwindow/ver_warner.py,sha256=qEN3ulc1NixBy15FFx2R3Zu0DhyJTVJwiESGAPwpynM,3373
@@ -35,14 +36,14 @@ crystalwindow/docs/index.md,sha256=bd14uLWtRSeRBm28zngGyfGDI1J6bJRvHkQLDpYwgOE,7
35
36
  crystalwindow/gametests/3dsquare.py,sha256=MM_RRx1mz_NeBhTAoNomzn_IAbbN4ZnQZWA9VAFL8mY,821
36
37
  crystalwindow/gametests/__init__.py,sha256=TRwhDl8aO3Wdqu_DXi9qT35CqF86AIyLqOSAkjNMJFY,240
37
38
  crystalwindow/gametests/__main__.py,sha256=93R7DXHRK7GPsMrZB526pkWCrKJ728E1G4wCbHk3kP0,751
38
- crystalwindow/gametests/gravitytest.py,sha256=OzhdaUtjSaVgWeSqYmtWLCP_9RIrkkMg_oHfrWTEUzs,3393
39
+ crystalwindow/gametests/gravitytest.py,sha256=eXsP4zXZh-Fr1wGJP-H5wEqSSlAomWkfk1Kmag1yaH4,3392
39
40
  crystalwindow/gametests/guitesting.py,sha256=7MAlFkH9cLsGeS3B5oaYWOwB1k1ek9aosqSL_UhYZgY,1919
40
41
  crystalwindow/gametests/sandbox.py,sha256=Oo2tU2N0y3BPVa6T5vs_h9N6islhQrjSrr_78XLut5I,1007
41
42
  crystalwindow/gametests/squaremove.py,sha256=ei6DMnvcgpOhmxbGv-Yqmx5EqiZjKbVlZhI7YbT2hY8,643
42
43
  crystalwindow/gametests/testtttagain.py,sha256=oIhK9MGgMVly_W2lRwD9Hn9WyPdd8JnX2HGrLTGZdxY,373
43
44
  crystalwindow/gametests/windowtesting.py,sha256=_9X6wnV1-_X_PtNS-0zu-k209NtFIwAc4vpxLPp7V2o,97
44
- crystalwindow-5.6.dist-info/licenses/LICENSE,sha256=Gt5cJRchdNt0guxyQMHKsATN5PM5mjuDhdO6Gzs9qQc,1096
45
- crystalwindow-5.6.dist-info/METADATA,sha256=yaYpHzrlqZEw-YjnFC4qC1k9JNUyiN_kS4GShCjwwzw,7523
46
- crystalwindow-5.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
- crystalwindow-5.6.dist-info/top_level.txt,sha256=PeQSld4b19XWT-zvbYkvE2Xg8sakIMbDzSzSdOSRN8o,14
48
- crystalwindow-5.6.dist-info/RECORD,,
45
+ crystalwindow-5.7.dist-info/licenses/LICENSE,sha256=Gt5cJRchdNt0guxyQMHKsATN5PM5mjuDhdO6Gzs9qQc,1096
46
+ crystalwindow-5.7.dist-info/METADATA,sha256=h51DQWqw7tkDiMHrMGks1wq2CIvVL1RKT_YxNMI8C4I,7523
47
+ crystalwindow-5.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
48
+ crystalwindow-5.7.dist-info/top_level.txt,sha256=PeQSld4b19XWT-zvbYkvE2Xg8sakIMbDzSzSdOSRN8o,14
49
+ crystalwindow-5.7.dist-info/RECORD,,