Version 0.6.0
Released May 14th, 2025
Breaking Changes
Vector.from_tuplename change tofrom_iterableand supportsVectorof the same dimension,numpyarrays,tuple, orlist.Vectorscan now only interact with objects of it's own type (~IntVectorcannot interact with~FloatVector, vice versa, etc.).Intervalwill not longer be found in thecommonmodule and will now come withwameas is.Commonmodule now renamed toUtils. This reflects new changes with developer utilities and QoL features.
Additions
Vectorobject changes:2Dvectors inheritBaseVector2,3Dvectors inheritBaseVector3, to which bothBaseVector2/3inheritBaseVector.- Now use
numpy.ndarrayin the backend instead of hard-coded attributes likex,y, andz. - Memory footprint of each is slightly smaller due to implementation of
__slots__. - Differences between all old and new
Vectorobjects:abs()now supported (measuresmagnitude)len()now supported (2Dis always2,3Dis always3)iter()now supported as well as unpacking (gets internalxandy,zif3D)>=conditionals now supportedv[0]andv[1]get and set now supported>conditionals now supported//arithmetic now supported<=conditionals now supported<conditionals now supported*arithmetic now supported-negative/flip arithmetic now supported- Reversed
+and-arithmetic now supported str()now supported (to print values if necessary)/arithmetic now supportedcopy()method additiondot()method additionmagnitude()method additionnormalize()method addition
- Steppable game loop in the
Engine(to support custom GUI applications rather than games):- If you'd like to render frames only when you ask the
Engineto: - Disable the game loop using
Engine.set_game_loop_enabled(False)(Trueto switch back). - Poll the update/render
Scenemethods usingEngine.step_game_loop.
- If you'd like to render frames only when you ask the
Pipelinenow inheritsenum.Enuminstead of using rawintvalues in place ofPYGAMEandOPENGL.Intervalnow inheritsenum.Enum.- New
Tweenobject:- Animates various objects' (like
UIelements,pygame.Rect, etc.) size, color, position, etc. Scenehas an instance ofTweenunderScene.tween.- Uses easing methods like
LINEAR,QUAD_IN_OUT, etc. underwame.utils.Easing. - Dispatches event under
Scene.on_tweenedwhen the tween is successfully completed.
- Animates various objects' (like