Skip to content

Releases: JujuAdams/Scribble

8.0.1 Beta 9

03 May 14:04
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 8:

  • Fixes crash when redefining spritefonts
  • Fixes whitespace glyph offsets persisting from previous generations
  • Replaces the custom colours map with a struct
  • .fit_to_box() no longer accepts split words
  • Many internal enum members have now had their names changed to avoid conflicts with macros that you may be using in your game
  • IDE sprite speeds now affect the speed that sprites animate in-game. This feature can be turned off by setting SCRIBBLE_LEGACY_ANIMATION_SPEED to true

8.0.1 Beta 8

03 Mar 15:09
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 7:

  • draw_text_scribble() and draw_text_scribble_ext() now use Scribble's default font if no font has been set using draw_set_font()
  • Fixes .on_last_page() calling a deprecated method
  • Fixes events not executing when there are no printable glyphs in the input string
  • Adds [zwsp] tag to insert a zero width space into a string (which is useful for controlling where linebreaks happen)
  • Adds .animation_speed() and .get_animation_speed() text element methods
  • Adds .flash() effect which replaces the old .fog() effect
  • Fixes HTML5 again. Days since YYG broke HTML5: 000
  • Fixes .get_state() returning inaccurate results when type in effect is smoothed

8.0.1 Beta 7

10 Feb 10:19
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 6:

  • Works around upstream issue with HTML5 where cached text models wouldn't correctly update
  • Massively improves the performance of font outline, shadow, and general shader baking
  • Line height is now adjusted by changing the FONT_HEIGHT parameter of spaces rather than the HEIGHT parameter
  • .transform() text element method will now accept a single argument to uniformly scale a text element
  • Updates superfont functions

8.0.1 Beta 6

09 Feb 19:53
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 5:

  • Adds scribble_font_duplicate()
  • Adds SCRIBBLE_MSDF_BORDER_TRIM to help clip out edge glitches when using MSDF outlines
  • Fixes scribble_glyph_set() not actually adjusting all glyphs when using the all keyword
  • Adds safety check for upstream bug with script_get_name() when a negative script index is used
  • Fixes command tags breaking text direction ("BiDi") prediction
  • Fixes hyphens not being treated as symbols for the purposes of text direction
  • Fixes gradient effect breaking colour cycling
  • Fixes colour cycling glitching when followed by other text formatting commands

8.0.1 Beta 5

26 Jan 10:03
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 4:

  • Fixes crash in typists when their associated text element has been garbage collected by GameMaker
  • Fixes uneven baseline when using fa_middle

8.0.1 Beta 4

15 Jan 17:53
Compare
Choose a tag to compare

Change log against v7.1 here.

Documentation here.

 

Changes from beta 3:

  • Fixes macro-related issue in HTML5. Reminder - Scribble now works on the HTML5 target but only on beta GameMaker runtime v23.1.1.433 (or later). There may still be remaining issues when running Scribble on HTML5. Please report any problems that you find
  • .padding() now works properly, including affecting dimension getter functions
  • Model cache name generation has been optimised
  • Fixes .align() not recognising "fa_justify" as a horizontal alignment input
  • Fixes .fit_to_box() not regenerating a text element's draw matrix when changed
  • Removes .get_page_width() and .get_page_height(). The .get_width() and .get_height() getters now default to returning the dimensions of the current page (as determined by SCRIBBLE_BOUNDING_BOX_USES_PAGE)
  • .get_bbox() and .get_bbox_revealed() now return transformed widths/heights (in contrast to .get_width() and .get_height() which return untransformed widths/heights)

8.0.1 Beta 3

12 Jan 23:46
Compare
Choose a tag to compare
8.0.1 Beta 3 Pre-release
Pre-release

Change log against v7.1 here.

Documentation here.

 

Changes from beta 2:

  • Scribble now works on the HTML5 target (beta GameMaker runtime v23.1.1.433 or later, this will include future stable runtime 2.3.8.x). There may still be remaining issues when running Scribble on HTML5. Please report any problems that you find.
  • Calling .skip() on a typist before the typist has been used to draw any text will now skip the first text element drawn with the typist (previously the typist would reset)
  • Fixes a crash in draw_text_scribble*() when using a spritefont
  • Adds SCRIBBLE_SPRITEFONT_LEGACY_HEIGHT to help transition from v7 to v8
  • Using the .sound() method in conjunction with per-character delay at the end of a string no longer causes distracting audio playback
  • Fixes crash when using .scale_to_box()

 

Known Issues:

  • .padding() might have some issues

8.0.1 Beta 2

02 Jan 15:28
Compare
Choose a tag to compare
8.0.1 Beta 2 Pre-release
Pre-release

Change log against v7.1 here.

Documentation here.

 

Changes from beta 1:

  • Turned off SCRIBBLE_VERBOSE by default (sorry for the debug spam)
  • Adds deprecation warning messages when trying to use the removed .animation_*() element methods
  • Adds SCRIBBLE_INCREMENTAL_FREEZE for a nice performance boost when drawing large amounts of text. Vertex buffer freezing happens one frame after the text model is created to help smooth out any one-time performance costs
  • Small amount of optimisation in addition to the above
  • New pages are no longer generated when text vertically fills a textbox without exceeding the maximum height
  • Fixes unnecessary extra lines being generated
  • Fixes events bleeding from one text model to another leading to confusing event execution
  • Fixes draw_text_scribble*() crashing when drawing without a font set
  • Fixes right-aligned text often having ugly whitespace when wrapping text. RHS whitespace trimming can be turned off by setting SCRIBBLE_FLEXIBLE_WHITESPACE_WIDTH to false
  • Re-adding fonts (e.g. font_add() after calling game_restart()) no longer throws an error and will instead output a warning and regenerate the Scribble font

 

Known Issues:

  • .padding() might have some issues

8.0.1 Beta 1

23 Dec 23:19
Compare
Choose a tag to compare
8.0.1 Beta 1 Pre-release
Pre-release

Change log against v7.1 here.

Documentation here.

 

Known Issues:

  • .padding() might have some issues
  • Typist events occasionally trigger in a weird order
  • Sometimes empty pages are created if text reaches the bottom of textbox

7.2.0pre003

13 Sep 13:13
Compare
Choose a tag to compare
7.2.0pre003 Pre-release
Pre-release

This is a beta version and should not be used in production.

 

Typewriter behaviour is now controlled using a "typist". A typist is a unique (non-cached) machine that controls how your text is revealed and how events are executed as text is revealed. For example, you should create one typist per textbox. Typists are created by calling scribble_typist() and are garbage collected automatically. Typists can be used with a text element by targetting the typist with the text element's .draw() method. For example:

typist = scribble_typist();
typist.in(1, 0);

///Draw
scribble("Here's some typewriter text!").draw(x, y, typist);

Note that we called the .in() method. This is analogous to the old .typewriter_in() method that was available on text elements in previous versions. Here's a list of methods for typists, and they follow the same basic rules as the old typewriter functions.

.reset()
.in(speed, smoothness)
.out(speed, smoothness, [backwards])
.skip()
.sound(soundArray, overlapMS, pitchMin, pitchMax)
.sound_per_char(soundArray, pitchMin, pitchMax)
.function_per_char(function)
.pause()
.unpause()
.ease(easeMethod, dX, dY, xScale, yScale, rotation, alphaDuration)
.associate(textElement)  <--  You'll probably never need to use this

A typist should only be used to control text reveal for one text element at a time. Changing text element, or changing the page for that text element, will cause the typist to automatically be reset.

Typists are automatically associated with a text element when targetted using that text element's .draw() method. If you want to manually associate a typist with a text element you'll need to use .associate() method (on the typist).

 

Additionally, two methods have been added to text elements. .reveal() sets how many characters are visible in the text element (including spaces), and .reveal_get() returns that value. Using a typist will override any value set with .reveal(). Revealling characters using .reveal() will also not execute any events whatsoever - you'll need to use a typist for that.

 

Finally, in light of above, .typewriter*() methods have been deprecated for text elements returned by scribble(). You will get a warning when trying to use these functions. If you don't want to transition across to using the new typist system then set SCRIBBLE_WARNING_LEGACY_TYPEWRITER to false. Existing behaviour should be unaffected if you use legacy methods, but try to migrate your code if you can as the old featureset will be fully removed in the next major version (later this year probably).