PyJ2D Version History


PyJ2D Module

Current Version: 0.33


0.33 2025-01-18

  • revise surface alpha.
  • update transform to preserve surface alpha.
  • add vector copy method.
  • revise mixer set_num_channels method.
  • refactor mixer music rewind method.
  • revise surface convert.
  • add activeevent.
  • add closeevent.
  • update color object.
  • revise sprite to optimize.
  • revise vector elementwise object.
  • revise vector operator methods.
  • revise vector object instantiation.

0.32 2022-04-17

  • add key set_repeat method.
  • update surface blit with optional rect return.
  • revise time tick framerate handling.
  • add surface convert methods.
  • add surface alpha methods.
  • add surface blits method.

0.31 2021-11-07

  • revise sprite orderedupdates.
  • add sprite group alias.
  • refactor sprite collide methods.
  • add sprite layeredupdates.
  • add cursors get_cursor_types.
  • add vector object.
  • revise mixer processing.
  • add mixer music object.
  • add hscroll mouseevent.
  • add mixer channel endevent.
  • add mixer channel queue.

0.30 2021-04-28

  • center display frame.
  • revise rect move and union methods.
  • revise rect attributes.
  • revise rect move/inflate args processing.
  • add env check.
  • revise quit method to stop timers.
  • update time set_timer for event argument.
  • update for python 2/3 compatibility.

0.29 2021-04-06

  • update event handling.
  • update exception handling of color object.
  • update mixer endian setting.
  • update subsurface exception.
  • update for python 2/3 compatibility.

0.28 2019-04-06

  • update jpanel with event handling that registers appropriate mouse position.
  • add time set_timer method.
  • update display repaint to sync with program iteration.
  • update sprite to revise member groups.
  • update sprite argument handling.
  • update sprite collide_mask to use mask.overlap.
  • add mouse set_cursor and get_cursor methods.
  • update mouse set_cursor to use custom image.
  • update mouse set_cursor to use cursor data.
  • update transform rotozoom to optimize.
  • update surface area blit to optimize.
  • update display update method to optimize.
  • add util timer for profiling.
  • update draw arc with dimension adjustment.
  • update time clock for accuracy.
  • revise with absolute import statements.
  • update font with rendering adjustment.
  • update event peek option of all types.
  • update event methods to optimize.
  • update draw methods to optimize with optional rect return.

0.27 2015-04-12

  • update font to enhance fonts access.
  • update image load to allow file-like argument.
  • update draw methods to int convert argument.
  • add mask.toString method.
  • add rect iter method.
  • add rect collide methods - collidelistall, collidedict, and collidedictall.
  • add sprite collide methods - collide_rect_ratio, collide_circle, and collide_circle_ratio.
  • add mousewheel event listener.
  • release under MIT license.

0.26 2014-11-09

  • add rect union methods.
  • update methods to use rect intersection.
  • update surface blit rect computation.
  • update initialization to stabilize timing.
  • add rect rectPool to utilize a rect pool.
  • update sprite draw for performance.
  • update sprite collide methods processing.
  • add rect clamp methods.
  • update mixer write for non-integral frames.
  • update mixer quit to properly stop thread.
  • add mouse set_visible method.

0.25 2014-08-20

  • update mixer thread interrupt.
  • update handling of display surface graphics2d object.
  • update display.set_mode to accept additional arguments.
  • add display set_caption/set_icon to set JFrame title/icon.
  • add display.get_active method.
  • update event object constructor to properly handle arguments.
  • add key.get_mods method.
  • update mouse.get_pressed to properly return state of all buttons.
  • restructure event handler to capture all mouse motion events.
  • add event member buttons.
  • change event key location to event.loc (KEY_LOCATION_LEFT|RIGHT|STANDARD|NUMPAD|UNKNOWN).
  • correct event.pump to maintain queue.
  • add event.dict access.
  • update mouse.get_rel process on frame exit.
  • update event.rel to properly return with multiple access.
  • update event modKey set to use Java HashSet with earlier Jython releases, defined in __init__.py (HashSet not sets import due to compile problem).
  • update event eventtype list as a set object.
  • update rect inflate/inflate_ip positioning.
  • update display to repaint on dispatch thread.

0.24 2014-04-24

  • update transform.rotozoom for correct scaling.
  • update thread interrupt handling.
  • add mixer.

0.23 2014-02-27

  • update Event.get to accept eventtype argument.
  • update Event.poll and Event.wait to return JEvent object.
  • update Event.poll noevent return.
  • update Rect.clip return for non-overlap.
  • update Rect attribute positioning.
  • update Rect inflate/inflate_ip positioning.
  • add Rect equality and nonzero methods.
  • add Color object.
  • update to use Color object.
  • update draw methods with minor adjustments.
  • update to use Rect object.
  • update Sprite group update to account for member changes.
  • add Surfarray methods.
  • add draw.ellipse method.
  • change license from GPL to LGPL.

0.22 2013-03-30

  • add Font.get_linesize, Font.get_ascent, Font.get_descent
  • update Font.render to adjust rendering postion.
  • update Font.size to adjust surface size.
  • update Event/JEvent for proper function of UserEvent.

0.21 2012-02-08

  • update pyj2d.quit
  • change Mask.print to Mask.print_mask

0.20 2012-01-10

  • update Event to properly handle UserEvent
  • update Font/SysFont __init__ to handle style
  • update Rect.__init__ for obj with rect attribute
  • update Sprite.__init__ to accept Group argument
  • update Sprite OrderedUpdates.__iter__ to return ordered iterator
  • update Sprite OrderedUpdates.sprites
  • update Surface set_at/get_at to raise IndexError on ArrayOutOfBoundsException
  • refactor code
  • generate documentation with Epydoc

0.19 2012-01-05

  • add key events
  • update Event object to include key events
  • update Event to use Java event constants
  • update Event object to include relative mouse position
  • update Sprite Group/GroupSingle/RenderUpdates to hold sprites in a dict attribute
  • update Surface to bit check type argument
  • update Time Clock.get_time and Clock.tick to return time between ticks

0.18 2011-12-28

  • update Sprite Class
  • update Sprite Group/GroupSingle/RenderUpdates to subclass dict
  • add Sprite OrderedUpdates
  • update Sprite collision methods to use iterator to sprites

0.17 2011-12-23

  • update Frame to register mouse press event
  • update Mouse.get_pressed to use registered mouse press event instead of Event.poll_mouse
  • update Rect.__init__, several Rect methods to ensure type, and add Rect.clip
  • update Surface methods __init__, copy, subsurface, set_at, blit
  • update Event methods updateQueue (to check event allowed), post, clear, and add methods set_blocked, set_allowed, get_blocked, peek
  • update Sprite.spritecollide to use Sprite.collide_mask
  • update RenderUpdates.draw
  • update Draw.lines
  • add Surfarray.blit_array
  • add Mask

0.16 2011-12-14

  • add Rect.__getattr__ to retrieve positional attributes
  • update Surface.__init__ to include bufferedimage argument to convert to Surface subclass, update Surface.subsurface and Image.load to reflect change
  • update Surface.fill to return Rect
  • update Transform.rotate to properly center and resize image upon rotation.
  • add Transform.scale2x and Transform.flip

0.15 2011-12-10

  • update Applet to launch Runnable Thread containing app
  • update Display to repaint to Jpanel instead of Jframe and repaint procedure
  • update Draw to include both filled and unfilled, and return bounding rect
  • update Transform to include scale

0.14 2011-12-06

  • update display.update
  • fix draw.polygon
  • update mouse.get_pos retrieve from panel instead of frame to correct alignment
  • update rect move/inflate to offset change
  • update Surface init

0.13 2011-12-04

  • add font
  • add direct mouse input
  • module globals in env.py
  • update draw rect argument
  • add draw.polygon
  • update event.get
  • add event.poll_mouse
  • update rect to access data by index
  • update surface.blit to return Rect subclass
  • update surface get_at and set_at
  • : *tuple error in Jython applet

0.12 2011-12-01

  • fix time.py Clock.delay()
  • add event handling
  • add mouse events

0.11 2011-11-28

  • fix image.py image loading from jar on Windows
  • : os.path set path with \ but Java getResource needed /

0.10 2011-11-21

  • initial release