Releases: scratchcpp/libscratchcpp
Releases · scratchcpp/libscratchcpp
libscratchcpp 0.7.3
libscratchcpp 0.7.2
Change log:
- Fixed floating point number values loading issues caused by the currently set locale (#437).
- Fixed the default return value of Sprite::boundingRect() (#438).
Full Changelog: v0.7.1...v0.7.2
libscratchcpp 0.7.1
Change log:
- Fixed a crash when loading monitors of undefined variables (#445).
- Fixed loading error caused by monitors without specified width or height (#448).
- Fixed a crash in Monitor::changeValue() caused by uninitialized variable (#436).
Full Changelog: v0.7.0...v0.7.1
libscratchcpp 0.7.0
Breaking changes:
- Added boundingRectangle() method to ISpriteHandler (has to be implemented by the project player) (#344).
- Refactored the graphics effect API (#346).
- Moved graphics effect methods to the Target class (#313).
- Removed the image API (#345).
- Refactored the clone API.
- Fixed clone dangling pointer issues (#372).
- Optimized Block::inputs(), Block::fields() and other methods by changing the return type to reference (#359).
- Refactored script starting logic (#395).
- Added deinitClone() method to ISpriteHandler (#391).
- Completely rewritten the event loop to behave like Scratch.
- Added isBackdropBroadcast() method to Broadcast and added a parameter for it to the constructor.
Non-breaking changes:
- Added overloaded IEngine::setKeyState() with KeyEvent (#357).
- Added support for reading variables using the sensing_of block (#374).
- Added clickSprite() method to IEngine (#392).
- Added kill() method to VirtualMachine.
- Added methods for registering green flag and "when backdrop switches to" scripts.
- Added FPS limit (maximum is 250 and setting FPS to 0 or below won't do anything).
- Added step() method to IEngine (#401).
- Added audio playback API (#251).
- Implemented sound playback blocks (#82, #83, #84).
- Projects now stop before they're started (#394).
- Added intersects() method to the Rect class (#417).
- Added API for stage monitors (#124).
- Implemented blocks for variable and list monitors (#424, #425).
Full Changelog: v0.6.0...v0.7.0
libscratchcpp 0.6.2
Change log:
- Fixed crashes caused by incorrect skipping of nested if statements and loops (#378, #379, #380).
- Methods for starting and stopping the project are now thread-safe (#336).
- Fixed a crash when calling an undefined custom block (#384).
- Fixed a crash when reading custom block arguments after pausing the VM (#387).
- Improved project loading performance (#352, #358).
Full Changelog: v0.6.1...v0.6.2
libscratchcpp 0.6.1
Change log:
- Fixed a crash in repeat "zero" times loops with a nested loop (#362).
- Fixed a crash in nested if statements evaulated to "false" and a loop inside (#364).
- Fixed crashes caused by incomplete function lists (#361).
- Fixed Target::setCostumeIndex() not calling onCostumeChanged() in sprite/stage interface (#347).
Full Changelog: v0.6.0...v0.6.1
libscratchcpp 0.6.0
Breaking changes:
- Changed Target::currentCostume() to Target::costumeIndex() which returns costume index and Target::currentCostume() now returns the costume (#296).
- Refactored frame related methods of IEngine (#316).
- The event loop has been rewritten to be closer to Scratch (#305).
- Forced volume to be in range (from 0 to 100).
- Refactored the ISpriteHandler and IStageHandler interfaces (#330).
Non-breaking changes:
- Changes of visual properties now automatically request repaint (#276).
- Fixed stop all block not stopping the script (#319).
- Fixed screen refresh when calling already running broadcast (#257).
- Changed the order of execution to the layer order (#315).
- Added sprite layering API (#314).
- Implemented layer blocks (#76, #77).
- Implemented volume blocks (#88, #89, #90).
- Fixed scripts being stopped when they called a running broadcast from a custom block (#277).
- Added keepInFence() method to Sprite.
- Implemented the "if on edge, bounce" motion block (#47).
- Implemented turbo mode (#127).
- Added a setter for redraw handler function to IEngine (#329).
- Added stopEventLoop() method to IEngine (#334).
- Fixed string conversion issues caused by the locale (#331).
- Fixed the set rotation style block (#338).
- The number of periods in a repeat times loop is now rounded if a floating point number is passed (#317).
- Added API for comments in the code area (#129).
- Added support for loading projects from URL (#130).
- Fixed Project class not detecting Scratch version after changing the file name (#355).
- Fixed "unsupported top level block" warning with shadow blocks (#255).
Full Changelog: v0.5.0...v0.6.0
libscratchcpp 0.5.0
Breaking changes:
- Removed the updateInputMap() and updateFieldMap() methods from Block (#170).
- Fixed loading of current costume and added a range check to Target::setCurrentCostume() (#248).
- Added target property to Variable and List and removed IEngine::variableOwner() and IEngine::listOwner() (#190).
Non-breaking changes:
- Added KeyEvent class (#260).
- Implemented the when key pressed block (#96).
- Added keyboard (key state) API to IEngine (#262).
- Implemented the key pressed block (#110).
- Added mousePressed property to IEngine (#263).
- Implemented mouse down, mouse x and mouse y blocks (#111, #112, #113).
- Implemented the set drag mode block (#114).
- Implemented the (property) of (sprite/stage) sensing block (#119).
- The IEngine::findTarget() method now supports the "_stage_" reserved name and "Stage" is used for any sprite with this name (#272).
- Added API for image formats (#234).
- Added JPEG image support (#278).
- Added PNG image support (#279).
- Added clone count limit and a way to change it (#193).
- Added sprite fencing (#212).
- Removed register count limit from VirtualMachine (#178).
- Added API for graphics effects (#282).
- Implemented graphics effect blocks (#64, #65, #66).
Full Changelog: v0.4.0...v0.5.0
libscratchcpp 0.4.1
libscratchcpp 0.4.0
Breaking changes:
- Added target property to the Compiler class (#245) - the constructor now has a different signature.
- The IEngine::addBroadcastScript() method now uses a raw pointer instead of shared_ptr.
Non-breaking changes:
- Added stage getter to IEngine (#187).
- Implemented the show and hide blocks (#61, #62).
- Implemented size blocks (#67, #68, #69).
- Implemented costume and backdrop blocks (#72, #73, #74, #75, #80, #78, #81).
- Added clone() method to Variable and List classes (#189).
- Added broadcast getter to the Costume class (used for broadcasts linked to backdrops).
- Added broadcastByPtr() and broadcastByPtrRunning() methods to IEngine.
- Implemented the when backdrop switches to block (#94).
- Implemented the "distance to" block (#107).
Full Changelog: v0.3.0...v0.4.0