kraken-engine 0.3.0__cp313-cp313-win_amd64.whl → 1.0.0__cp313-cp313-win_amd64.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.

Potentially problematic release.


This version of kraken-engine might be problematic. Click here for more details.

@@ -1,17 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kraken-engine
3
- Version: 0.3.0
3
+ Version: 1.0.0
4
4
  Summary: Python bindings for Kraken Engine
5
5
  Author: Derrick Martinez
6
6
  License-Expression: MIT
7
7
  License-File: LICENSE
8
8
  Classifier: Programming Language :: Python
9
9
  Classifier: Programming Language :: Python :: 3
10
- Classifier: Programming Language :: Python :: 3.9
11
- Classifier: Programming Language :: Python :: 3.10
12
10
  Classifier: Programming Language :: Python :: 3.11
13
11
  Classifier: Programming Language :: Python :: 3.12
14
12
  Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
15
14
  Classifier: Topic :: Games/Entertainment
16
15
  Classifier: Topic :: Multimedia :: Graphics
17
16
  Classifier: Operating System :: Microsoft :: Windows
@@ -21,7 +20,7 @@ Project-URL: Issues, https://github.com/Kraken-Engine/PyKraken/issues
21
20
  Project-URL: Documentation, https://docs.krakenengine.org/docs/getting-started/introduction
22
21
  Project-URL: Release Notes, https://github.com/Kraken-Engine/PyKraken/releases
23
22
  Project-URL: Source, https://github.com/Kraken-Engine/PyKraken
24
- Requires-Python: >=3.10
23
+ Requires-Python: >=3.11
25
24
  Description-Content-Type: text/markdown
26
25
 
27
26
  <div align="center"><img src="https://github.com/durkisneer1/Kraken-Engine/blob/main/docs/_static/kraken-engine-banner.png"/></div>
@@ -1,6 +1,7 @@
1
1
  pykraken/__init__.py,sha256=t7q4pmStwUIRhUCXmKCgFu2cjNZedVGY79M1fsw40d0,22
2
- pykraken/__init__.pyi,sha256=NONWfDW4hp6y_0HkdR1DT8oLwophKvf3dRnFx_R8ScU,27568
3
- pykraken/_core/__init__.pyi,sha256=qTn_ZDu7K8IbS-i7gbko9AAD7qZ04sYUq5BFaJQTWJc,137014
2
+ pykraken/__init__.pyi,sha256=umZgAUy0Uvo-Ik6UHK81qyQJ_YvOaLZ8sf_mAI2ZbJg,28337
3
+ pykraken/__pyinstaller/hook-pykraken.py,sha256=_EHNPHaAuk6trRh21DunWtQg4UG6CpNQii7RsGDAfC0,364
4
+ pykraken/_core/__init__.pyi,sha256=S5dnJT-sbUVzYQ6nUoXO7v10_z6glQtTI_q_r-vRVhc,141574
4
5
  pykraken/_core/color.pyi,sha256=rpYUlAbEeAxZ5IgBdYxHD5Xe-88E-zUZiD8oByRXCQ8,4687
5
6
  pykraken/_core/draw.pyi,sha256=ZYlqh3sPnWXALN4_s_FfnbEnpIrdNTgRUY8HfddnpVo,3833
6
7
  pykraken/_core/ease.pyi,sha256=5qEyIWld65PpsdR_4kTv8IAhws79iZdUhymnKsg8Ahs,6725
@@ -12,14 +13,12 @@ pykraken/_core/line.pyi,sha256=cZMfTuQhYqK1d0C-78Y0ggFUF4ek6ST0v8XLJdvX94g,331
12
13
  pykraken/_core/math.pyi,sha256=8w8-yEqsqSKy3XE79pZsrTlogUACDiMrBSnW2t95X1Y,5211
13
14
  pykraken/_core/mouse.pyi,sha256=p8uBPH65jHVhMFQcI-VGeOHtHuSLTOGZXCAgMrk7FD0,2452
14
15
  pykraken/_core/rect.pyi,sha256=CNR_e8T9rURbSOMkn-s3s2CPsVMgeaQIPmfFWjJT0A4,2865
15
- pykraken/_core/renderer.pyi,sha256=NEIfywdvVlwqbC6SynM67aFN0L0vkLzLdlk2ju2iEOk,1331
16
- pykraken/_core/time.pyi,sha256=vH54h37PNN4QyGPVXwNN5-2VwbsikmUp6a9gBGOn5bs,1668
16
+ pykraken/_core/renderer.pyi,sha256=Kb9GSLvo2xsLrPQ0_G2mdl8FIPID97l-b4wRTIqcKcA,2315
17
+ pykraken/_core/time.pyi,sha256=WTQMqBUAxPSzfHr3BmSkcN3683w2saBjTCQVoFm4e_g,2623
17
18
  pykraken/_core/transform.pyi,sha256=uhTUrku66Djxqm69EgMmonDXsk166DNZY5cMgQ1BjY8,5586
18
- pykraken/_core/window.pyi,sha256=L7eUqhzxK8_l5Qh9Y2o9OGgRAbNZfAClV1H5_j3JJFU,2969
19
- pykraken/_core.cp313-win_amd64.pyd,sha256=nM4zxNz26TLa8wfCgLzYLNfX4KCIKhJvZ_r7ZqQZ_PY,1425920
20
- pykraken/SDL3.dll,sha256=QaA1Mji-PFkzCnDTRCHLWUpaTaJjYz27tyKwEsI1yUU,2516480
21
- pykraken/SDL3_image.dll,sha256=su5PKHdZ9vKvVY1-KWMdHRyvDkJoGW9lCHvRqZwJpm0,289280
22
- kraken_engine-0.3.0.dist-info/METADATA,sha256=IlShCDYJvo0fWGpAodZ3HUo0Waj5xLgGJIsq08zH-0Y,2116
23
- kraken_engine-0.3.0.dist-info/WHEEL,sha256=vkL3wTIkhjZa3RmEXX20hldNp6Q8qtwRjrXW6K5sw_Q,106
24
- kraken_engine-0.3.0.dist-info/licenses/LICENSE,sha256=4NUSEGSVvPUQ_2qD0hmmw_cOamv68n-TFiIpcIEK2eM,1094
25
- kraken_engine-0.3.0.dist-info/RECORD,,
19
+ pykraken/_core/window.pyi,sha256=T5QOKN4hzp9cnpmxBW9ISFK_Pnv4Uk0-ZFZyocgMNyM,3468
20
+ pykraken/_core.cp313-win_amd64.pyd,sha256=bVxlmhnOCmKmjgsIxewt92UySy9K0qSUWcyKQqJHhPA,5870592
21
+ kraken_engine-1.0.0.dist-info/METADATA,sha256=TtTfVjwIaqsaWegjXkH2ia63xZwO24LwHhIZAnFoD50,2066
22
+ kraken_engine-1.0.0.dist-info/WHEEL,sha256=vkL3wTIkhjZa3RmEXX20hldNp6Q8qtwRjrXW6K5sw_Q,106
23
+ kraken_engine-1.0.0.dist-info/licenses/LICENSE,sha256=4NUSEGSVvPUQ_2qD0hmmw_cOamv68n-TFiIpcIEK2eM,1094
24
+ kraken_engine-1.0.0.dist-info/RECORD,,
pykraken/__init__.pyi CHANGED
@@ -10,6 +10,7 @@ from pykraken._core import Color
10
10
  from pykraken._core import EasingAnimation
11
11
  from pykraken._core import Event
12
12
  from pykraken._core import EventType
13
+ from pykraken._core import Font
13
14
  from pykraken._core import Frame
14
15
  from pykraken._core import GamepadAxis
15
16
  from pykraken._core import GamepadButton
@@ -20,6 +21,7 @@ from pykraken._core import Layer
20
21
  from pykraken._core import Line
21
22
  from pykraken._core import Mask
22
23
  from pykraken._core import MouseButton
24
+ from pykraken._core import PenAxis
23
25
  from pykraken._core import PixelArray
24
26
  from pykraken._core import PolarCoordinate
25
27
  from pykraken._core import Polygon
@@ -48,8 +50,9 @@ from pykraken._core import time
48
50
  from pykraken._core import transform
49
51
  from pykraken._core import window
50
52
  from . import _core
51
- __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_REMOVED', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_ADDED', 'CAMERA_APPROVED', 'CAMERA_DENIED', 'CAMERA_REMOVED', 'CENTER', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMOVED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CAPS', 'K_CARET', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MINUS', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SPACE', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'Layer', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'Rect', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CAPS', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_EQ', 'S_ESC', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MINUS', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SEMICOLON', 'S_SLASH', 'S_SPACE', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'TEXT_EDITING', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Texture', 'Tile', 'TileMap', 'Timer', 'Vec2', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HIDDEN', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SHOWN', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
53
+ __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_FORMAT_CHANGED', 'AUDIO_DEVICE_REMOVED', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_ADDED', 'CAMERA_APPROVED', 'CAMERA_DENIED', 'CAMERA_REMOVED', 'CENTER', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'Font', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMOVED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CAPS', 'K_CARET', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MINUS', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SPACE', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'Layer', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'P_DISTANCE', 'P_PRESSURE', 'P_ROTATION', 'P_SLIDER', 'P_TANGENTIAL_PRESSURE', 'P_TILT_X', 'P_TILT_Y', 'PenAxis', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'Rect', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CAPS', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_EQ', 'S_ESC', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MINUS', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SEMICOLON', 'S_SLASH', 'S_SPACE', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'TEXT_EDITING', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Texture', 'Tile', 'TileMap', 'Timer', 'Vec2', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HIDDEN', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SHOWN', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
52
54
  AUDIO_DEVICE_ADDED: _core.EventType # value = <EventType.AUDIO_DEVICE_ADDED: 4352>
55
+ AUDIO_DEVICE_FORMAT_CHANGED: _core.EventType # value = <EventType.AUDIO_DEVICE_FORMAT_CHANGED: 4354>
53
56
  AUDIO_DEVICE_REMOVED: _core.EventType # value = <EventType.AUDIO_DEVICE_REMOVED: 4353>
54
57
  BOTTOM_LEFT: _core.Anchor # value = <Anchor.BOTTOM_LEFT: 6>
55
58
  BOTTOM_MID: _core.Anchor # value = <Anchor.BOTTOM_MID: 7>
@@ -261,6 +264,13 @@ PEN_MOTION: _core.EventType # value = <EventType.PEN_MOTION: 4870>
261
264
  PEN_PROXIMITY_IN: _core.EventType # value = <EventType.PEN_PROXIMITY_IN: 4864>
262
265
  PEN_PROXIMITY_OUT: _core.EventType # value = <EventType.PEN_PROXIMITY_OUT: 4865>
263
266
  PEN_UP: _core.EventType # value = <EventType.PEN_UP: 4867>
267
+ P_DISTANCE: _core.PenAxis # value = <PenAxis.P_DISTANCE: 3>
268
+ P_PRESSURE: _core.PenAxis # value = <PenAxis.P_PRESSURE: 0>
269
+ P_ROTATION: _core.PenAxis # value = <PenAxis.P_ROTATION: 4>
270
+ P_SLIDER: _core.PenAxis # value = <PenAxis.P_SLIDER: 5>
271
+ P_TANGENTIAL_PRESSURE: _core.PenAxis # value = <PenAxis.P_TANGENTIAL_PRESSURE: 6>
272
+ P_TILT_X: _core.PenAxis # value = <PenAxis.P_TILT_X: 1>
273
+ P_TILT_Y: _core.PenAxis # value = <PenAxis.P_TILT_Y: 2>
264
274
  QUIT: _core.EventType # value = <EventType.QUIT: 256>
265
275
  S_0: _core.Scancode # value = <Scancode.S_0: 39>
266
276
  S_1: _core.Scancode # value = <Scancode.S_1: 30>
@@ -0,0 +1,8 @@
1
+ # pykraken/__pyinstaller/hook-pykraken.py
2
+ from PyInstaller.utils.hooks import (
3
+ collect_dynamic_libs, collect_data_files, collect_submodules
4
+ )
5
+
6
+ hidden_imports = collect_submodules("pykraken") # dynamic imports/plugins
7
+ binaries = collect_dynamic_libs("pykraken") # SDL3/ttf/image libs
8
+ datas = collect_data_files("pykraken") # default fonts/shaders/etc.
@@ -17,7 +17,7 @@ from . import renderer
17
17
  from . import time
18
18
  from . import transform
19
19
  from . import window
20
- __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_REMOVED', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_ADDED', 'CAMERA_APPROVED', 'CAMERA_DENIED', 'CAMERA_REMOVED', 'CENTER', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMOVED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CAPS', 'K_CARET', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MINUS', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SPACE', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'Layer', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'Rect', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CAPS', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_EQ', 'S_ESC', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MINUS', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SEMICOLON', 'S_SLASH', 'S_SPACE', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'TEXT_EDITING', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Texture', 'Tile', 'TileMap', 'Timer', 'Vec2', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HIDDEN', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SHOWN', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
20
+ __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_FORMAT_CHANGED', 'AUDIO_DEVICE_REMOVED', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_ADDED', 'CAMERA_APPROVED', 'CAMERA_DENIED', 'CAMERA_REMOVED', 'CENTER', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'Font', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMOVED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CAPS', 'K_CARET', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MINUS', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SPACE', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'Layer', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'P_DISTANCE', 'P_PRESSURE', 'P_ROTATION', 'P_SLIDER', 'P_TANGENTIAL_PRESSURE', 'P_TILT_X', 'P_TILT_Y', 'PenAxis', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'Rect', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CAPS', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_EQ', 'S_ESC', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MINUS', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SEMICOLON', 'S_SLASH', 'S_SPACE', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'TEXT_EDITING', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Texture', 'Tile', 'TileMap', 'Timer', 'Vec2', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HIDDEN', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SHOWN', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
21
21
  class Anchor(enum.IntEnum):
22
22
  BOTTOM_LEFT: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_LEFT: 6>
23
23
  BOTTOM_MID: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_MID: 7>
@@ -492,6 +492,17 @@ class Color:
492
492
  Each channel (r, g, b, a) is an 8-bit unsigned integer.
493
493
 
494
494
  """
495
+ __hash__: typing.ClassVar[None] = None
496
+ def __eq__(self, other: Color) -> bool:
497
+ """
498
+ Check if two Color objects are equal (all RGBA components match).
499
+
500
+ Args:
501
+ other (Color): The color to compare with.
502
+
503
+ Returns:
504
+ bool: True if colors are identical, False otherwise.
505
+ """
495
506
  def __getitem__(self, index: typing.SupportsInt) -> int:
496
507
  """
497
508
  Access color channels by index.
@@ -549,6 +560,16 @@ class Color:
549
560
  Returns:
550
561
  int: Always returns 4 (for r, g, b, a channels).
551
562
  """
563
+ def __ne__(self, other: Color) -> bool:
564
+ """
565
+ Check if two Color objects are not equal.
566
+
567
+ Args:
568
+ other (Color): The color to compare with.
569
+
570
+ Returns:
571
+ bool: True if any component differs, False otherwise.
572
+ """
552
573
  def __repr__(self) -> str:
553
574
  """
554
575
  Return a string suitable for debugging and recreation.
@@ -574,6 +595,13 @@ class Color:
574
595
  Returns:
575
596
  str: String in format "(r, g, b, a)" with integer values.
576
597
  """
598
+ def copy(self) -> Color:
599
+ """
600
+ Create a copy of the color.
601
+
602
+ Returns:
603
+ Color: A new Color object with the same RGBA values.
604
+ """
577
605
  @property
578
606
  def a(self) -> int:
579
607
  """
@@ -664,7 +692,7 @@ class EasingAnimation:
664
692
  This class supports pausing, resuming, reversing, and checking progress.
665
693
 
666
694
  """
667
- def __init__(self, start: Vec2, end: Vec2, duration: typing.SupportsFloat, easeFunc: collections.abc.Callable[[typing.SupportsFloat], float]) -> None:
695
+ def __init__(self, start: Vec2, end: Vec2, duration: typing.SupportsFloat, ease_func: collections.abc.Callable[[typing.SupportsFloat], float]) -> None:
668
696
  """
669
697
  Create an EasingAnimation.
670
698
 
@@ -672,7 +700,7 @@ class EasingAnimation:
672
700
  start (Vec2): Starting position.
673
701
  end (Vec2): Ending position.
674
702
  duration (float): Time in seconds for full animation.
675
- easeFunc (Callable): Easing function that maps [0, 1] → [0, 1].
703
+ ease_func (Callable): Easing function that maps [0, 1] → [0, 1].
676
704
  """
677
705
  def pause(self) -> None:
678
706
  """
@@ -730,6 +758,7 @@ class Event:
730
758
  """
731
759
  class EventType(enum.IntEnum):
732
760
  AUDIO_DEVICE_ADDED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_ADDED: 4352>
761
+ AUDIO_DEVICE_FORMAT_CHANGED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_FORMAT_CHANGED: 4354>
733
762
  AUDIO_DEVICE_REMOVED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_REMOVED: 4353>
734
763
  CAMERA_ADDED: typing.ClassVar[EventType] # value = <EventType.CAMERA_ADDED: 5120>
735
764
  CAMERA_APPROVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_APPROVED: 5122>
@@ -791,6 +820,102 @@ class EventType(enum.IntEnum):
791
820
  """
792
821
  Convert to a string according to format_spec.
793
822
  """
823
+ class Font:
824
+ """
825
+
826
+ A font object for rendering text to the active renderer.
827
+
828
+ This class wraps an SDL_ttf font and an internal text object for efficient
829
+ rendering. You can load fonts from a file path or use one of the built-in
830
+ typefaces:
831
+
832
+ - "kraken-clean": A clean sans-serif font bundled with the engine.
833
+ - "kraken-retro": A pixel/retro font bundled with the engine. Point size is
834
+ rounded to the nearest multiple of 8 for crisp rendering.
835
+
836
+ Note:
837
+ A window/renderer must be created before using fonts. Typically you should
838
+ call kn.window.create(...) first, which initializes the font engine.
839
+
840
+ """
841
+ def __init__(self, arg0: str, arg1: typing.SupportsInt) -> None:
842
+ """
843
+ Create a Font.
844
+
845
+ Args:
846
+ file_dir (str): Path to a .ttf font file, or one of the built-in names
847
+ "kraken-clean" or "kraken-retro".
848
+ pt_size (int): The point size. Values below 8 are clamped to 8. For
849
+ "kraken-retro", the size is rounded to the nearest multiple
850
+ of 8 to preserve pixel alignment.
851
+
852
+ Raises:
853
+ RuntimeError: If the font fails to load.
854
+ """
855
+ def draw(self, text: str, pos: typing.Any = None, color: typing.Any = None, wrap_width: typing.SupportsInt = 0) -> None:
856
+ """
857
+ Draw text to the renderer.
858
+
859
+ Args:
860
+ text (str): The text to render.
861
+ pos (Vec2 | None, optional): The position in pixels. Defaults to (0, 0).
862
+ color (Color | None, optional): Text color. Defaults to white.
863
+ wrap_width (int, optional): Wrap the text at this pixel width. Set to 0 for
864
+ no wrapping. Defaults to 0.
865
+
866
+ Returns:
867
+ None
868
+ """
869
+ def set_bold(self, on: bool) -> None:
870
+ """
871
+ Enable or disable bold text style.
872
+
873
+ Args:
874
+ on (bool): True to enable bold, False to disable.
875
+
876
+ Returns:
877
+ None
878
+ """
879
+ def set_italic(self, on: bool) -> None:
880
+ """
881
+ Enable or disable italic text style.
882
+
883
+ Args:
884
+ on (bool): True to enable italic, False to disable.
885
+
886
+ Returns:
887
+ None
888
+ """
889
+ def set_pt_size(self, pt: typing.SupportsInt) -> None:
890
+ """
891
+ Set the font point size.
892
+
893
+ Args:
894
+ pt (int): The new point size. Values below 8 are clamped to 8.
895
+
896
+ Returns:
897
+ None
898
+ """
899
+ def set_strikethrough(self, on: bool) -> None:
900
+ """
901
+ Enable or disable strikethrough text style.
902
+
903
+ Args:
904
+ on (bool): True to enable strikethrough, False to disable.
905
+
906
+ Returns:
907
+ None
908
+ """
909
+ def set_underline(self, on: bool) -> None:
910
+ """
911
+ Enable or disable underline text style.
912
+
913
+ Args:
914
+ on (bool): True to enable underline, False to disable.
915
+
916
+ Returns:
917
+ None
918
+ """
794
919
  class Frame:
795
920
  """
796
921
 
@@ -801,7 +926,7 @@ class Frame:
801
926
 
802
927
  """
803
928
  @property
804
- def rect(self) -> Rect:
929
+ def src(self) -> Rect:
805
930
  """
806
931
  The rectangle defining the frame bounds within the texture.
807
932
  """
@@ -1426,6 +1551,10 @@ class Mask:
1426
1551
  Raises:
1427
1552
  RuntimeError: If pixel array creation fails.
1428
1553
  """
1554
+ def get_rect(self) -> Rect:
1555
+ """
1556
+ Get the bounding rectangle of the mask starting at (0, 0).
1557
+ """
1429
1558
  def invert(self) -> None:
1430
1559
  """
1431
1560
  Invert all pixels in the mask.
@@ -1463,11 +1592,6 @@ class Mask:
1463
1592
  The height of the mask in pixels.
1464
1593
  """
1465
1594
  @property
1466
- def rect(self) -> Rect:
1467
- """
1468
- The bounding rectangle of the mask starting at (0, 0).
1469
- """
1470
- @property
1471
1595
  def size(self) -> Vec2:
1472
1596
  """
1473
1597
  The size of the mask as a Vec2.
@@ -1490,6 +1614,21 @@ class MouseButton(enum.IntEnum):
1490
1614
  """
1491
1615
  Convert to a string according to format_spec.
1492
1616
  """
1617
+ class PenAxis(enum.IntEnum):
1618
+ P_DISTANCE: typing.ClassVar[PenAxis] # value = <PenAxis.P_DISTANCE: 3>
1619
+ P_PRESSURE: typing.ClassVar[PenAxis] # value = <PenAxis.P_PRESSURE: 0>
1620
+ P_ROTATION: typing.ClassVar[PenAxis] # value = <PenAxis.P_ROTATION: 4>
1621
+ P_SLIDER: typing.ClassVar[PenAxis] # value = <PenAxis.P_SLIDER: 5>
1622
+ P_TANGENTIAL_PRESSURE: typing.ClassVar[PenAxis] # value = <PenAxis.P_TANGENTIAL_PRESSURE: 6>
1623
+ P_TILT_X: typing.ClassVar[PenAxis] # value = <PenAxis.P_TILT_X: 1>
1624
+ P_TILT_Y: typing.ClassVar[PenAxis] # value = <PenAxis.P_TILT_Y: 2>
1625
+ @classmethod
1626
+ def __new__(cls, value):
1627
+ ...
1628
+ def __format__(self, format_spec):
1629
+ """
1630
+ Convert to a string according to format_spec.
1631
+ """
1493
1632
  class PixelArray:
1494
1633
  """
1495
1634
 
@@ -1579,6 +1718,13 @@ class PixelArray:
1579
1718
  Raises:
1580
1719
  IndexError: If coordinates are outside the pixel array bounds.
1581
1720
  """
1721
+ def get_rect(self) -> Rect:
1722
+ """
1723
+ Get a rectangle representing the pixel array bounds.
1724
+
1725
+ Returns:
1726
+ Rect: A rectangle with position (0, 0) and the pixel array's dimensions.
1727
+ """
1582
1728
  def set_at(self, coord: Vec2, color: Color) -> None:
1583
1729
  """
1584
1730
  Set the color of a pixel at the specified coordinates.
@@ -1633,14 +1779,6 @@ class PixelArray:
1633
1779
  int: The pixel array height.
1634
1780
  """
1635
1781
  @property
1636
- def rect(self) -> Rect:
1637
- """
1638
- A rectangle representing the pixel array bounds.
1639
-
1640
- Returns:
1641
- Rect: A rectangle with position (0, 0) and the pixel array's dimensions.
1642
- """
1643
- @property
1644
1782
  def size(self) -> Vec2:
1645
1783
  """
1646
1784
  The size of the pixel array as a Vec2.
@@ -1827,17 +1965,6 @@ class Polygon:
1827
1965
  Args:
1828
1966
  points (list[Vec2]): List of Vec2 points defining the polygon vertices.
1829
1967
  """
1830
- @typing.overload
1831
- def __init__(self, points: collections.abc.Sequence) -> None:
1832
- """
1833
- Create a polygon from a sequence of points.
1834
-
1835
- Args:
1836
- points: A sequence of Vec2 objects or 2-element sequences [[x, y], ...].
1837
-
1838
- Raises:
1839
- ValueError: If points are not properly formatted.
1840
- """
1841
1968
  def __iter__(self) -> collections.abc.Iterator:
1842
1969
  """
1843
1970
  Return an iterator over the polygon's points.
@@ -2443,13 +2570,6 @@ class Texture:
2443
2570
  Raises:
2444
2571
  RuntimeError: If texture creation from pixel array fails.
2445
2572
  """
2446
- def get_alpha(self) -> float:
2447
- """
2448
- Get the current alpha modulation value.
2449
-
2450
- Returns:
2451
- float: The current alpha value.
2452
- """
2453
2573
  def get_rect(self) -> Rect:
2454
2574
  """
2455
2575
  Get a rectangle representing the texture bounds.
@@ -2457,20 +2577,6 @@ class Texture:
2457
2577
  Returns:
2458
2578
  Rect: A rectangle with position (0, 0) and the texture's dimensions.
2459
2579
  """
2460
- def get_size(self) -> Vec2:
2461
- """
2462
- Get the size of the texture.
2463
-
2464
- Returns:
2465
- Vec2: The texture size as (width, height).
2466
- """
2467
- def get_tint(self) -> Color:
2468
- """
2469
- Get the current color tint applied to the texture.
2470
-
2471
- Returns:
2472
- Color: The current tint color.
2473
- """
2474
2580
  def make_additive(self) -> None:
2475
2581
  """
2476
2582
  Set the texture to use additive blending mode.
@@ -2491,48 +2597,20 @@ class Texture:
2491
2597
 
2492
2598
  This is the default blending mode for standard transparency effects.
2493
2599
  """
2494
- @typing.overload
2495
- def render(self, dst: Rect, src: typing.Any = None) -> None:
2496
- """
2497
- Render this texture with specified destination and source rectangles.
2498
-
2499
- Args:
2500
- dst (Rect): The destination rectangle on the renderer.
2501
- src (Rect, optional): The source rectangle from the texture. Defaults to entire texture if not specified.
2502
- """
2503
- @typing.overload
2504
- def render(self, pos: typing.Any = None, anchor: Anchor = Anchor.CENTER) -> None:
2505
- """
2506
- Render this texture at the specified position with anchor alignment.
2507
-
2508
- Args:
2509
- pos (Vec2, optional): The position to draw at. Defaults to (0, 0).
2510
- anchor (Anchor, optional): The anchor point for positioning. Defaults to CENTER.
2511
- """
2512
- def set_alpha(self, alpha: typing.SupportsFloat) -> None:
2513
- """
2514
- Set the alpha (transparency) modulation for the texture.
2515
-
2516
- Args:
2517
- alpha (float): The alpha value, typically in range [0.0, 1.0] where
2518
- 0.0 is fully transparent and 1.0 is fully opaque.
2519
- """
2520
- def set_tint(self, color: Color) -> None:
2600
+ @property
2601
+ def alpha(self) -> float:
2521
2602
  """
2522
- Set the color tint applied to the texture during rendering.
2523
-
2524
- The tint color is multiplied with the texture's pixels, allowing for
2525
- color effects and lighting.
2526
-
2527
- Args:
2528
- color (Color): The tint color to apply.
2603
+ Get or set the alpha modulation of the texture as a float between `0.0` and `1.0`.
2529
2604
  """
2605
+ @alpha.setter
2606
+ def alpha(self, arg1: typing.SupportsFloat) -> None:
2607
+ ...
2530
2608
  @property
2531
2609
  def angle(self) -> float:
2532
2610
  """
2533
- The rotation angle in degrees for rendering.
2611
+ The rotation angle in radians for rendering.
2534
2612
 
2535
- When the texture is drawn, it will be rotated by this angle around its center.
2613
+ When the texture is drawn, it will be rotated by this angle about its center.
2536
2614
  """
2537
2615
  @angle.setter
2538
2616
  def angle(self, arg0: typing.SupportsFloat) -> None:
@@ -2547,6 +2625,22 @@ class Texture:
2547
2625
  @flip.setter
2548
2626
  def flip(self, arg0: Texture.Flip) -> None:
2549
2627
  ...
2628
+ @property
2629
+ def size(self) -> Vec2:
2630
+ """
2631
+ Get the size of the texture.
2632
+
2633
+ Returns:
2634
+ Vec2: The texture size as (width, height).
2635
+ """
2636
+ @property
2637
+ def tint(self) -> Color:
2638
+ """
2639
+ Get or set the color tint applied to the texture during rendering.
2640
+ """
2641
+ @tint.setter
2642
+ def tint(self, arg1: Color) -> None:
2643
+ ...
2550
2644
  class Tile:
2551
2645
  """
2552
2646
 
@@ -2962,7 +3056,7 @@ class Vec2:
2962
3056
  Returns:
2963
3057
  str: String in format "Vec2(x, y)".
2964
3058
  """
2965
- def __rmul__(self: typing.SupportsFloat, scalar: Vec2) -> Vec2:
3059
+ def __rmul__(self, scalar: typing.SupportsFloat) -> Vec2:
2966
3060
  """
2967
3061
  Right-hand multiplication (scalar * self).
2968
3062
 
@@ -3082,6 +3176,19 @@ class Vec2:
3082
3176
  def x(self, arg0: typing.SupportsFloat) -> None:
3083
3177
  ...
3084
3178
  @property
3179
+ def xx(self) -> Vec2:
3180
+ """
3181
+ Get a new Vec2 with both components set to x.
3182
+ """
3183
+ @property
3184
+ def xy(self) -> Vec2:
3185
+ """
3186
+ Get or set the (x, y) components as a new Vec2.
3187
+ """
3188
+ @xy.setter
3189
+ def xy(self, arg1: typing.SupportsFloat, arg2: typing.SupportsFloat) -> None:
3190
+ ...
3191
+ @property
3085
3192
  def y(self) -> float:
3086
3193
  """
3087
3194
  The y component of the vector.
@@ -3089,6 +3196,19 @@ class Vec2:
3089
3196
  @y.setter
3090
3197
  def y(self, arg0: typing.SupportsFloat) -> None:
3091
3198
  ...
3199
+ @property
3200
+ def yx(self) -> Vec2:
3201
+ """
3202
+ Get or set the (y, x) components as a new Vec2.
3203
+ """
3204
+ @yx.setter
3205
+ def yx(self, arg1: typing.SupportsFloat, arg2: typing.SupportsFloat) -> None:
3206
+ ...
3207
+ @property
3208
+ def yy(self) -> Vec2:
3209
+ """
3210
+ Get a new Vec2 with both components set to y.
3211
+ """
3092
3212
  def init() -> None:
3093
3213
  """
3094
3214
  Initialize the Kraken Engine.
@@ -3102,6 +3222,7 @@ def quit() -> None:
3102
3222
  Call this once you're done using the engine to avoid memory leaks.
3103
3223
  """
3104
3224
  AUDIO_DEVICE_ADDED: EventType # value = <EventType.AUDIO_DEVICE_ADDED: 4352>
3225
+ AUDIO_DEVICE_FORMAT_CHANGED: EventType # value = <EventType.AUDIO_DEVICE_FORMAT_CHANGED: 4354>
3105
3226
  AUDIO_DEVICE_REMOVED: EventType # value = <EventType.AUDIO_DEVICE_REMOVED: 4353>
3106
3227
  BOTTOM_LEFT: Anchor # value = <Anchor.BOTTOM_LEFT: 6>
3107
3228
  BOTTOM_MID: Anchor # value = <Anchor.BOTTOM_MID: 7>
@@ -3313,6 +3434,13 @@ PEN_MOTION: EventType # value = <EventType.PEN_MOTION: 4870>
3313
3434
  PEN_PROXIMITY_IN: EventType # value = <EventType.PEN_PROXIMITY_IN: 4864>
3314
3435
  PEN_PROXIMITY_OUT: EventType # value = <EventType.PEN_PROXIMITY_OUT: 4865>
3315
3436
  PEN_UP: EventType # value = <EventType.PEN_UP: 4867>
3437
+ P_DISTANCE: PenAxis # value = <PenAxis.P_DISTANCE: 3>
3438
+ P_PRESSURE: PenAxis # value = <PenAxis.P_PRESSURE: 0>
3439
+ P_ROTATION: PenAxis # value = <PenAxis.P_ROTATION: 4>
3440
+ P_SLIDER: PenAxis # value = <PenAxis.P_SLIDER: 5>
3441
+ P_TANGENTIAL_PRESSURE: PenAxis # value = <PenAxis.P_TANGENTIAL_PRESSURE: 6>
3442
+ P_TILT_X: PenAxis # value = <PenAxis.P_TILT_X: 1>
3443
+ P_TILT_Y: PenAxis # value = <PenAxis.P_TILT_Y: 2>
3316
3444
  QUIT: EventType # value = <EventType.QUIT: 256>
3317
3445
  S_0: Scancode # value = <Scancode.S_0: 39>
3318
3446
  S_1: Scancode # value = <Scancode.S_1: 30>
@@ -4,7 +4,7 @@ Functions for rendering graphics
4
4
  from __future__ import annotations
5
5
  import pykraken._core
6
6
  import typing
7
- __all__: list[str] = ['clear', 'get_res', 'present']
7
+ __all__: list[str] = ['clear', 'draw', 'get_res', 'present']
8
8
  @typing.overload
9
9
  def clear(color: typing.Any = None) -> None:
10
10
  """
@@ -27,6 +27,26 @@ def clear(r: typing.SupportsInt, g: typing.SupportsInt, b: typing.SupportsInt, a
27
27
  b (int): Blue component (0-255).
28
28
  a (int, optional): Alpha component (0-255). Defaults to 255.
29
29
  """
30
+ @typing.overload
31
+ def draw(texture: pykraken._core.Texture, dst: pykraken._core.Rect, src: typing.Any = None) -> None:
32
+ """
33
+ Render a texture with specified destination and source rectangles.
34
+
35
+ Args:
36
+ texture (Texture): The texture to render.
37
+ dst (Rect): The destination rectangle on the renderer.
38
+ src (Rect, optional): The source rectangle from the texture. Defaults to entire texture if not specified.
39
+ """
40
+ @typing.overload
41
+ def draw(texture: pykraken._core.Texture, pos: typing.Any = None, anchor: pykraken._core.Anchor = pykraken._core.Anchor.CENTER) -> None:
42
+ """
43
+ Render a texture at the specified position with anchor alignment.
44
+
45
+ Args:
46
+ texture (Texture): The texture to render.
47
+ pos (Vec2, optional): The position to draw at. Defaults to (0, 0).
48
+ anchor (Anchor, optional): The anchor point for positioning. Defaults to CENTER.
49
+ """
30
50
  def get_res() -> pykraken._core.Vec2:
31
51
  """
32
52
  Get the resolution of the renderer.
pykraken/_core/time.pyi CHANGED
@@ -3,7 +3,7 @@ Time related functions
3
3
  """
4
4
  from __future__ import annotations
5
5
  import typing
6
- __all__: list[str] = ['delay', 'get_delta', 'get_elapsed', 'get_fps', 'set_target']
6
+ __all__: list[str] = ['delay', 'get_delta', 'get_elapsed', 'get_fps', 'get_scale', 'set_max_delta', 'set_scale', 'set_target']
7
7
  def delay(milliseconds: typing.SupportsInt) -> None:
8
8
  """
9
9
  Delay the program execution for the specified duration.
@@ -41,6 +41,31 @@ def get_fps() -> float:
41
41
  Returns:
42
42
  float: The current FPS based on the last frame time.
43
43
  """
44
+ def get_scale() -> float:
45
+ """
46
+ Get the current global time scale factor.
47
+
48
+ Returns:
49
+ float: The current time scale factor.
50
+ """
51
+ def set_max_delta(max_delta: typing.SupportsFloat) -> None:
52
+ """
53
+ Set the maximum allowed delta time between frames.
54
+
55
+ Parameters:
56
+ max_delta (float): The maximum delta time in seconds, greater than 0.0.
57
+ This is useful to prevent large delta values during
58
+ frame drops or pauses that could destabilize physics or animations.
59
+ """
60
+ def set_scale(scale: typing.SupportsFloat) -> None:
61
+ """
62
+ Set the global time scale factor.
63
+
64
+ Args:
65
+ scale (float): The time scale factor. Values < 0.0 are clamped to 0.0.
66
+ A scale of 1.0 represents normal time, 0.5 is half speed,
67
+ and 2.0 is double speed.
68
+ """
44
69
  def set_target(frame_rate: typing.SupportsInt) -> None:
45
70
  """
46
71
  Set the target framerate for the application.
pykraken/_core/window.pyi CHANGED
@@ -3,7 +3,7 @@ Window related functions
3
3
  """
4
4
  from __future__ import annotations
5
5
  import pykraken._core
6
- __all__: list[str] = ['close', 'create', 'get_scale', 'get_size', 'get_title', 'is_fullscreen', 'is_open', 'set_fullscreen', 'set_title']
6
+ __all__: list[str] = ['close', 'create', 'get_scale', 'get_size', 'get_title', 'is_fullscreen', 'is_open', 'save_screenshot', 'set_fullscreen', 'set_icon', 'set_title']
7
7
  def close() -> None:
8
8
  """
9
9
  Close the window.
@@ -73,6 +73,13 @@ def is_open() -> bool:
73
73
  Returns:
74
74
  bool: True if the window is open and active.
75
75
  """
76
+ def save_screenshot(path: str) -> None:
77
+ """
78
+ Save a screenshot of the current frame to a file.
79
+
80
+ Args:
81
+ path (str): The path to save the screenshot to.
82
+ """
76
83
  def set_fullscreen(fullscreen: bool) -> None:
77
84
  """
78
85
  Set the fullscreen mode of the window.
@@ -83,6 +90,16 @@ def set_fullscreen(fullscreen: bool) -> None:
83
90
  Raises:
84
91
  RuntimeError: If the window is not initialized.
85
92
  """
93
+ def set_icon(path: str) -> None:
94
+ """
95
+ Set the window icon from an image file.
96
+
97
+ Args:
98
+ path (str): The file path to the image to use as the icon.
99
+
100
+ Raises:
101
+ RuntimeError: If the window is not initialized or icon setting fails.
102
+ """
86
103
  def set_title(title: str) -> None:
87
104
  """
88
105
  Set the title of the window.
Binary file
pykraken/SDL3.dll DELETED
Binary file
pykraken/SDL3_image.dll DELETED
Binary file