-
Notifications
You must be signed in to change notification settings - Fork 32
ReleaseNotes
Erik Eloff edited this page May 12, 2013
·
38 revisions
- The complete list of API changes for the most recent release is available.
Everywhere:
-
Most
update
methods were changed to take anint delta
to match the changes toPlayN
, and mostpaint
methods were changed to take an instance ofClock
. This allows certain calculations to be performed once-per-frame instead of repeatedly by half a dozen subsystems. Your game should be updated to use a pattern like the following:class MyGame extends Game.Default { public MyGame () { super(UPDATE_PERIOD); } public void update (int delta) { _clock.update(delta); _screens.update(delta); _particles.update(delta); _sounds.update(delta); // ..etc.. } public void paint (float alpha) { _clock.paint(alpha); _screens.paint(_clock); _particles.paint(_clock); // ..etc.. } private Clock _clock = new Clock.Source(UPDATE_PERIOD); private ScreenStack _screens = new ScreenStack(); private Particles _particles = new Particles(); private SoundBoard _sounds = new SoundBoard(); private static final int UPDATE_RATE = 30; // FPS private static final int UPDATE_PERIOD = 1000 / UPDATE_RATE; }
TPUI:
- Elements that supported icons now take an Icon class rather than Image. Use Icons
image
to easily turn anImage
into anIcon
. - Various new widgets. See API changes for full details.
- Added Constraints
maxWidth
/maxHeight
/maxSize
constraint builders. - Boolean style constants can now be expressed as
Style.FOO.on
andStyle.FOO.off
in addition toStyle.FOO.is(true)
andStyle.FOO.is(false)
.
TPAnim:
- Fixed bug with calling
cancel
on an animation that was just about to start. AlsoAnimation.Handle.cancel
no longer returns a boolean value. - Animation durations were always specified in milliseconds, but various places in the code and documentation talked about seconds. The code and documentation has all been normalized to use and talk about milliseconds.
TPPlatform:
- Beginnings of native text field support for Java.
- Various enhancements to native text field support on iOS. See API changes.
TPUtil:
TPUI:
- Added Scroller
makeVisible
. - Added LongPressButton which supports both a normal press interaction and a long-press interaction.
- Added AxisLayout.Policy
CONSTRAIN
off-axis sizing policy. - Added Field
MAXIMUM_INPUT_LENGTH
style. - Added TableLayout
colspan
for configuring a column span on an element. - Added ValueLabel.
- Added Style
ICON_CUDDLE
andUNDERLINE
(the latter for underlined text). - Added TableLayout.Column
free
to allow weighting of free columns.
TPAnim:
- Added AnimGroup for creating a group of invoked-in-parallel of animations that are either added to an Animator later, or are added to a serial animation chain.
- Moved animation creation methods from Animator to AnimBuilder. Animation
then
now returns an AnimBuilder which is a cleaner design. - Clarified behavior of Animator
add
andthen
, madethen
freak out if used incorrectly. - Fixed bugs with repeating animations.
TPSound:
TPParticle:
- Added Transform
randomScale
andrandomOffset
.
TPFlump:
- Various bug fixes and small API improvements. See API changes.
TPPlatform:
- Added NativeTextField
Validator
andTransformer
for (native) text validation and transformation.
TPShader:
-
TintingShader
was removed as PlayN layers now support tinting directly.
TPUtil:
- Added Logger.Level
ERROR
for really serious business. - Added Ref, Destroyable and DestroyableList which can simplify manual resource management.
- Added Hud for easy display of debug info.
- Mainly this release is to track the PlayN 1.5.1 patch release.
- Various dependency updates: React 1.3.1, Pythagoras (inherited from PlayN) 1.3.2.
- Added the
gesture
package for touch gesture recognition. - Added a framework for native extensions to TriplePlay (in the
platform
package), and NativeTextField (only implemented on iOS) for overlaying a native iOS textfield onto the PlayN view. - Added a number of new TPUI widget classes:
Menu
, Scroller,Tabs
. - Added SoundBoard and associated sounds for easily managing sound effects and music.
TPUI:
- Added Style
ACTION_SOUND
for playing a sound when buttons are clicked, etc. - Added Style
BACKGROUND
support to all elements (previously it only worked forTextWidget
derivatives and [Group]). - Added Shim constructor that takes
Dimension
. - Added Background
alpha
for making backgrounds translucent. - Added Slider
setWidth
. - Added SizableWidget.
- Added TableLayout
alignTop
andalignBottom
for configuring vertical alignment of cell contents. -
Root
wasRemoved
is now properly called when a root is removed and/or destroyed.
TPAnim:
- Added Animator
setAnimating
. - Added Animator
stop(Sound)
. - Added Animator
tweenVolume(Sound)
. - Added Flicker
posValue
. - Fixed Animator
repeat
which had all sorts of wacky edge case bugs.
TPGame:
- Added page turn transition (via ScreenStack
pageFlip
). Uses a custom shader (for real 3D-ness) and thus only works on GL-based backends. - Added flip transition (via ScreenStack
flip
). Uses a custom shader (for real 3D-ness) and thus only works on GL-based backends. - Added ScreenStack
remove(Predicate)
for removing all screens that match a predicate. - Added AbstractTransition
onStart/onComplete
. - Fixed issues when screen transitions are interrupted (by starting a new transition).
TPUtil:
- Added TypedStorage
contains(String)
andsetFor
. - Added TypedStorage
get/set
for enums andvalueFor(String,Enum)
. -
TextConfig moved from
ui
toutil
.
TPParticle:
- New particle system. See Demo for examples.
TPSound:
- Added MultiSound.
TPSyncDB:
- SyncDB is a new system for syncing a set of persistent data across a set of clients (via a server). Think syncing local game state across multiple mobile clients and/or web clients. Supports offline play with accumulation of changes and merging of those changes into the shared database with conflict resolution. Not fully implemented.
TPFlump:
- Beginnings of player for Flump animations.
TPDemo:
- Extracted all of the demos into a standalone demo project.
TPUI:
- Removed focus support, modified Field to always use
Keyboard.getText
. - Added CheckBox.
- Added Slider
setIncrement
and SlidersetThumb
, made Slider use configured background style. - Added Element
getStyleClass
. - Added Background
roundRect
. - Added TextConfig.
- Added FlowLayout.
- Added AxisLayout
stretch
. - Added Style
SHADOW_X
andSHADOW_Y
. - Added Style
TEXT_EFFECT.vectorOutline
,OUTLINE_WIDTH
,OUTLINE_CAP
, andOUTLINE_JOIN
. - Changed Style
TEXT_EFFECT.outline
to StyleTEXT_EFFECT.pixelOutline
- Added TableLayout.Column
copy
. - Added Interface
roots
. - Revamped
TextWidget
which resulted in changes to Button and Label. - Clicks are now ignored by non-enabled widgets.
- Fixed issue where text was positioned on non-integral-pixels in HiDPI mode.
TPAnim:
- Added Animation
from
andto
that take aPoint
. - Added Animator
setVisible
,addAt
. - Added Animator
flipbook
,flipbookAt
and Frames, SimpleFrames, PackedFrames. - Added a tool to create packed frame images. See
tripleplay.tools.FramePacker
. - Improved flow when transitioning between animations (no longer does it force a frame to elapse when one animation ends and then next starts).
TPGame:
- Added ScreenStack
popTo
andpush(Iterable<Screen>)
. - Added ScreenStack.Transition and ScreenStack
slide
. - Added Screen
showTransitionCompleted
andhideTransitionStarted
. - Added AnimScreen, UIScreen and UIAnimScreen.
TPUtil:
- Added Logger
Level
andLevels
. - Simplified Logger.Impl.
- Added TypedStorage
valueFor(String,String)
.
TPUI:
- Added TogglableTextWidget and ToggleButton.
- Added BorderLayout, like AWT's layout of same name.
- Added AxisLayout
stretchByDefault
. - Added Field
focus()
, FieldmaybeFocus()
for setting focus programmatically. - Modified Field to use Keyboard
getText
on platforms with no hardware keyboard. - Added Scale9Background and Background
scale9
. - Added Background
bordered
. - Added Element
hierarchyChanged
signal, which is emitted when an element is added to or removed from the UI hierarchy. - Added TableLayout
(int)
constructor for easier creation of table with many standard columns. - Changed Background insets configuration to Background
inset(int)
, etc. - Changed
NullBackground
toBlankBackground
for consistency. - Made labels not intercept clicks.
- Made elements/group not respond to clicks when not visible.
- Fixed bug where icon gap was shown when we had icon and no text.
- Rewrote event handling to use PlayN's new built-in event dispatch to layers. This means Interface no longer takes a Pointer.Listener and TPUI plays more nicely with other click handling you are doing on layers in your game.
TPAnim:
- Added Animator
tween
to allow tweening of custom properties. - Added Animator
reparent
for reparenting a layer during an animation. - Added Flicker for doing iOS-style flick scrolling.
TPUtil:
- Added Timer for periodic and one-shot timers.
- Added Layers
reparent
. - Added
long
anddouble
values to TypedStorage. - Added Logger.PlayNImpl for easy wiring of logging facade to PlayN.
I wasn't maintaining release notes back in those glorious days.