Skip to content

Releases: scratchcpp/libscratchcpp

libscratchcpp 0.7.3

30 Jan 16:17
Compare
Choose a tag to compare
libscratchcpp 0.7.3 Pre-release
Pre-release

Change log:

  • Fixed the 'set effect to' block (#457).
  • Fixed graphic effects not working in the stage (#458).

libscratchcpp 0.7.2

27 Jan 14:16
Compare
Choose a tag to compare
libscratchcpp 0.7.2 Pre-release
Pre-release

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

25 Jan 15:52
Compare
Choose a tag to compare
libscratchcpp 0.7.1 Pre-release
Pre-release

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

15 Jan 19:43
d7e05e2
Compare
Choose a tag to compare
libscratchcpp 0.7.0 Pre-release
Pre-release

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

23 Dec 09:53
Compare
Choose a tag to compare
libscratchcpp 0.6.2 Pre-release
Pre-release

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

16 Dec 15:06
Compare
Choose a tag to compare
libscratchcpp 0.6.1 Pre-release
Pre-release

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

09 Dec 14:53
0acdf37
Compare
Choose a tag to compare
libscratchcpp 0.6.0 Pre-release
Pre-release

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

08 Nov 15:52
d3c71da
Compare
Choose a tag to compare
libscratchcpp 0.5.0 Pre-release
Pre-release

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

23 Oct 16:18
Compare
Choose a tag to compare
libscratchcpp 0.4.1 Pre-release
Pre-release

Change log:

  • Fixed a crash when a broadcast calls itself (#256).

Full Changelog: v0.4.0...v0.4.1

libscratchcpp 0.4.0

15 Oct 17:53
9b33a2a
Compare
Choose a tag to compare
libscratchcpp 0.4.0 Pre-release
Pre-release

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