diff options
author | David Thompson <dthompson2@worcester.edu> | 2022-10-25 07:25:01 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2022-10-25 07:26:05 -0400 |
commit | d54995cad9ddf652cd2f7abb128d5d251f9454f1 (patch) | |
tree | 34c7b4676b4e3615a2a66980868b4d767c6867b6 | |
parent | bb44696ee1d8263b58976fec1bcd8e030f97f8e4 (diff) |
projects: Update chickadee for 0.9.0 release.
-rw-r--r-- | manuals/chickadee/Array-Lists.html | 2 | ||||
-rw-r--r-- | manuals/chickadee/Index.html | 15 | ||||
-rw-r--r-- | manuals/chickadee/Invoking-chickadee-play.html | 41 | ||||
-rw-r--r-- | manuals/chickadee/Matrices.html | 51 | ||||
-rw-r--r-- | manuals/chickadee/Scripts.html | 5 | ||||
-rw-r--r-- | manuals/chickadee/Sprites.html | 11 | ||||
-rw-r--r-- | manuals/chickadee/The-Game-Loop.html | 10 | ||||
-rw-r--r-- | projects.scm | 5 |
8 files changed, 120 insertions, 20 deletions
diff --git a/manuals/chickadee/Array-Lists.html b/manuals/chickadee/Array-Lists.html index 28e1835..0aa5eb4 100644 --- a/manuals/chickadee/Array-Lists.html +++ b/manuals/chickadee/Array-Lists.html @@ -157,7 +157,7 @@ takes linear time in the worst case. If <var>fast?</var> is <code>#t</code> the <dl> <dt id="index-array_002dlist_002dfor_002deach">Procedure: <strong>array-list-for-each</strong> <em>proc array-list</em></dt> -<dd><p>Apply PROC with each item in <var>array-list</var>. +<dd><p>Apply <var>proc</var> with each item in <var>array-list</var>. </p></dd></dl> <dl> diff --git a/manuals/chickadee/Index.html b/manuals/chickadee/Index.html index 99a7806..bc184bd 100644 --- a/manuals/chickadee/Index.html +++ b/manuals/chickadee/Index.html @@ -107,6 +107,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a> +<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a> + <a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a> <a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a> @@ -380,6 +382,9 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <tr><td></td><td valign="top"><a href="Buffers.html#index-index_002dbuffer_003f"><code>index-buffer?</code></a>:</td><td> </td><td valign="top"><a href="Buffers.html">Buffers</a></td></tr> <tr><td></td><td valign="top"><a href="Shaders.html#index-int"><code>int</code></a>:</td><td> </td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr> <tr><td colspan="4"> <hr></td></tr> +<tr><th id="Index_fn_letter-J">J</th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Scripts.html#index-join"><code>join</code></a>:</td><td> </td><td valign="top"><a href="Scripts.html">Scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> <tr><th id="Index_fn_letter-K">K</th><td></td><td></td></tr> <tr><td></td><td valign="top"><a href="Input-Devices.html#index-key_002dpressed_003f"><code>key-pressed?</code></a>:</td><td> </td><td valign="top"><a href="Input-Devices.html">Input Devices</a></td></tr> <tr><td></td><td valign="top"><a href="Input-Devices.html#index-key_002dreleased_003f"><code>key-released?</code></a>:</td><td> </td><td valign="top"><a href="Input-Devices.html">Input Devices</a></td></tr> @@ -487,6 +492,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <tr><td></td><td valign="top"><a href="Meshes.html#index-material_002dtexture_002d4"><code>material-texture-4</code></a>:</td><td> </td><td valign="top"><a href="Meshes.html">Meshes</a></td></tr> <tr><td></td><td valign="top"><a href="Meshes.html#index-material_003f"><code>material?</code></a>:</td><td> </td><td valign="top"><a href="Meshes.html">Meshes</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002a"><code>matrix3*</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dcopy"><code>matrix3-copy</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dcopy_0021"><code>matrix3-copy!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002didentity_0021"><code>matrix3-identity!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dinverse"><code>matrix3-inverse</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dinverse_0021"><code>matrix3-inverse!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> @@ -499,10 +506,15 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtransform_0021"><code>matrix3-transform!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtranslate"><code>matrix3-translate</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtranslate_0021"><code>matrix3-translate!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_003d"><code>matrix3=</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_003f"><code>matrix3?</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002a"><code>matrix4*</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002d2d_002dtransform_0021"><code>matrix4-2d-transform!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dcopy"><code>matrix4-copy</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dcopy_0021"><code>matrix4-copy!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002didentity_0021"><code>matrix4-identity!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dinverse"><code>matrix4-inverse</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dinverse_0021"><code>matrix4-inverse!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dmult_0021"><code>matrix4-mult!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002drotate"><code>matrix4-rotate</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002drotate_0021"><code>matrix4-rotate!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> @@ -513,6 +525,7 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtransform_0021"><code>matrix4-transform!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtranslate"><code>matrix4-translate</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtranslate_0021"><code>matrix4-translate!</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> +<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_003d"><code>matrix4=</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_003f"><code>matrix4?</code></a>:</td><td> </td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr> <tr><td></td><td valign="top"><a href="Window-Manipulation.html#index-maximize_002dwindow_0021"><code>maximize-window!</code></a>:</td><td> </td><td valign="top"><a href="Window-Manipulation.html">Window Manipulation</a></td></tr> <tr><td></td><td valign="top"><a href="Meshes.html#index-mesh_002dname"><code>mesh-name</code></a>:</td><td> </td><td valign="top"><a href="Meshes.html">Meshes</a></td></tr> @@ -977,6 +990,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th <a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a> +<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a> + <a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a> <a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a> diff --git a/manuals/chickadee/Invoking-chickadee-play.html b/manuals/chickadee/Invoking-chickadee-play.html index 0c9c065..2841c18 100644 --- a/manuals/chickadee/Invoking-chickadee-play.html +++ b/manuals/chickadee/Invoking-chickadee-play.html @@ -98,8 +98,7 @@ the Chickadee game contained within a Scheme source file. events from the game loop: </p> <ul> -<li> load-game -</li><li> quit-game +<li> quit-game </li><li> draw </li><li> update </li><li> key-press @@ -170,8 +169,8 @@ controlled via the following options: <dt><code>--repl</code></dt> <dd> <p>Launch a REPL in the terminal. This will allow the game environment -to debugged and modified without having to stop and restart the game -after each change. +to be debugged and modified without having to stop and restart the +game after each change. </p> </dd> <dt><code>--repl-server[=<var>port</var>]</code></dt> @@ -184,6 +183,40 @@ REPL with Guile. Use <code>M-x connect-to-guile</code> to connect to the REPL server. </p> </dd> +<dt><code>--language=<var>language</var></code></dt> +<dd> +<p>Process the input program using <var>language</var>, the identifier of a +language within Guile’s language tower. By default, unsurprisingly, +Scheme is used. +</p> +<p>For example, to use the neat +<a href="https://www.draketo.de/software/wisp">Wisp</a> language as an +alternative to Scheme’s parenthetical syntax, pass +<code>--language=wisp</code>. Wisp is not included with Guile and must be +installed separately. +</p> +</dd> +<dt><code>-x <var>extension</var></code></dt> +<dd> +<p>Add <var>extension</var> to the list of file extensions that Guile will +load. +</p> +<p>For example, Wisp files canonically use the <samp>.w</samp> extension. +Here’s what a “hello, world” Chickadee program looks like in Wisp: +</p> +<div class="example"> +<pre class="example">define : draw alpha + draw-text "Hello, world!" : vec2 260.0 240.0 +</pre></div> + +<p>Assuming the above code is saved to a <samp>hello.w</samp> file, +<code>chickadee play</code> be invoked as follows: +</p> +<div class="example"> +<pre class="example">chickadee play --language=wisp -x .w hello.w +</pre></div> + +</dd> </dl> <hr> diff --git a/manuals/chickadee/Matrices.html b/manuals/chickadee/Matrices.html index 551664d..354a9ef 100644 --- a/manuals/chickadee/Matrices.html +++ b/manuals/chickadee/Matrices.html @@ -132,6 +132,16 @@ equivalent to the following code: </p></dd></dl> <dl> +<dt id="index-matrix3_003d">Procedure: <strong>matrix3=</strong> <em>m1 m2</em></dt> +<dd><p>Return <code>#t</code> if <var>m1</var> is the same matrix as <var>m2</var>. +</p></dd></dl> + +<dl> +<dt id="index-matrix3_002dcopy">Procedure: <strong>matrix3-copy</strong> <em>matrix</em></dt> +<dd><p>Return a new 3x3 matrix that is a copy of <var>matrix</var>. +</p></dd></dl> + +<dl> <dt id="index-matrix3_002a">Procedure: <strong>matrix3*</strong> <em>. matrices</em></dt> <dd><p>Return a new 3x3 matrix containing the product of multiplying all of the given <var>matrices</var>. @@ -172,6 +182,11 @@ matrix <var>matrix</var>. matrix objects: </p> <dl> +<dt id="index-matrix3_002dcopy_0021">Procedure: <strong>matrix3-copy!</strong> <em>src dest</em></dt> +<dd><p>Copy the contents of matrix <var>src</var> to <var>dest</var>. +</p></dd></dl> + +<dl> <dt id="index-matrix3_002didentity_0021">Procedure: <strong>matrix3-identity!</strong> <em>matrix</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain the identity matrix. </p></dd></dl> @@ -247,6 +262,16 @@ equivalent to the following code: </p></dd></dl> <dl> +<dt id="index-matrix4_003d">Procedure: <strong>matrix4=</strong> <em>m1 m2</em></dt> +<dd><p>Return <code>#t</code> if <var>m1</var> is the same matrix as <var>m2</var>. +</p></dd></dl> + +<dl> +<dt id="index-matrix4_002dcopy">Procedure: <strong>matrix4-copy</strong> <em>matrix</em></dt> +<dd><p>Return a new 4x4 matrix that is a copy of <var>matrix</var>. +</p></dd></dl> + +<dl> <dt id="index-matrix4_002a">Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt> <dd><p>Return a new 4x4 matrix containing the product of multiplying all of the given <var>matrices</var>. @@ -255,6 +280,14 @@ the given <var>matrices</var>. </p></dd></dl> <dl> +<dt id="index-matrix4_002dinverse">Procedure: <strong>matrix4-inverse</strong> <em>matrix</em></dt> +<dd><p>Return the inverse of <var>matrix</var>. +</p> +<p>A matrix multiplied by its inverse is the identity matrix, thought not +always exactly due to the nature of floating point numbers. +</p></dd></dl> + +<dl> <dt id="index-orthographic_002dprojection">Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt> <dd> <p>Return a new 4x4 matrix that represents an orthographic (2D) @@ -297,6 +330,14 @@ axis defined by the quaternion <var>q</var>. <var>theta</var> radians. </p></dd></dl> +<p>The following procedures perform in-place, destructive updates to 4x4 +matrix objects: +</p> +<dl> +<dt id="index-matrix4_002dcopy_0021">Procedure: <strong>matrix4-copy!</strong> <em>src dest</em></dt> +<dd><p>Copy the contents of matrix <var>src</var> to <var>dest</var>. +</p></dd></dl> + <dl> <dt id="index-matrix4_002didentity_0021">Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain the identity matrix. @@ -309,6 +350,12 @@ the result in the 4x4 matrix <var>dest</var>. </p></dd></dl> <dl> +<dt id="index-matrix4_002dinverse_0021">Procedure: <strong>matrix4-inverse!</strong> <em>matrix target</em></dt> +<dd><p>Compute the inverse of <var>matrix</var> and store the result in +<var>target</var>. +</p></dd></dl> + +<dl> <dt id="index-matrix4_002dtranslate_0021">Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain a translation by <var>x</var>, a 2D vector, a 3D vector, or a rectangle (in which case the bottom-left @@ -334,12 +381,12 @@ axis defined by the quaternion <var>q</var>. </p></dd></dl> <dl> -<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt> +<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:shear]</em></dt> <dd> <p>Modify <var>matrix</var> in-place to contain the transformation described by <var>position</var>, a 2D vector or rectangle, <var>rotation</var>, a scalar representing a rotation about the Z axis, <var>scale</var>, a 2D vector, -and <var>skew</var>, a 2D vector. The transformation happens with respect +and <var>shear</var>, a 2D vector. The transformation happens with respect to <var>origin</var>, a 2D vector. If an argument is not provided, that particular transformation will not be included in the result. </p></dd></dl> diff --git a/manuals/chickadee/Scripts.html b/manuals/chickadee/Scripts.html index d9b0b32..bc82c5f 100644 --- a/manuals/chickadee/Scripts.html +++ b/manuals/chickadee/Scripts.html @@ -174,6 +174,11 @@ procedure <var>handler</var>. </p></dd></dl> <dl> +<dt id="index-join">Procedure: <strong>join</strong> <em>script</em></dt> +<dd><p>Suspend the current script until <var>script</var> has terminated. +</p></dd></dl> + +<dl> <dt id="index-sleep">Procedure: <strong>sleep</strong> <em>duration</em></dt> <dd><p>Wait <var>duration</var> before resuming the current script. </p></dd></dl> diff --git a/manuals/chickadee/Sprites.html b/manuals/chickadee/Sprites.html index 2575e87..6069f8f 100644 --- a/manuals/chickadee/Sprites.html +++ b/manuals/chickadee/Sprites.html @@ -98,15 +98,16 @@ interface for working with sprites. Bitmaps are stored in textures <code>draw-sprite</code> procedure. </p> <dl> -<dt id="index-draw_002dsprite">Procedure: <strong>draw-sprite</strong> <em>texture position [#:tint white] [#:origin] [#:scale] [#:rotation] [#:blend-mode] [#:rect]</em></dt> +<dt id="index-draw_002dsprite">Procedure: <strong>draw-sprite</strong> <em>texture position [#:blend-mode] [#:origin] [#:rect] [#:rotation] [#:scale] [#:shear] [#:tint white]</em></dt> <dd> <p>Draw <var>texture</var> at <var>position</var>. </p> <p>Optionally, other transformations may be applied to the sprite. <var>rotation</var> specifies the angle to rotate the sprite, in radians. -<var>scale</var> specifies the scaling factor as a 2D vector. All -transformations are applied relative to <var>origin</var>, a 2D vector, -which defaults to the lower-left corner. +<var>scale</var> specifies the scaling factor as a 2D vector. <var>shear</var> +specifies the shearing factor as a 2D vector. All transformations are +applied relative to <var>origin</var>, a 2D vector, which defaults to the +lower-left corner. </p> <p><var>tint</var> specifies the color to multiply against all the sprite’s pixels. By default white is used, which does no tinting at all. @@ -159,7 +160,7 @@ are full to accomodate as many sprites as necessary. </p></dd></dl> <dl> -<dt id="index-sprite_002dbatch_002dadd_0021">Procedure: <strong>sprite-batch-add!</strong> <em>batch position [#:origin] [#:scale] [:rotation] [#:tint <code>white</code>] [#:texture-region]</em></dt> +<dt id="index-sprite_002dbatch_002dadd_0021">Procedure: <strong>sprite-batch-add!</strong> <em>batch position [#:origin] [:rotation] [#:scale] [#:shear] [#:texture-region] [#:tint <code>white</code>]</em></dt> <dd> <p>Add sprite located at <var>position</var> to <var>batch</var>. </p> diff --git a/manuals/chickadee/The-Game-Loop.html b/manuals/chickadee/The-Game-Loop.html index d18ad0d..7d7acfb 100644 --- a/manuals/chickadee/The-Game-Loop.html +++ b/manuals/chickadee/The-Game-Loop.html @@ -277,18 +277,16 @@ values are: </li></ol> -</li><li> <var>error</var>: Called with three arguments when an error occurs: +</li><li> <var>error</var>: Called with two arguments when an error occurs: <ol> -<li> <var>stack</var>: The call stack at the point of error. +<li> <var>exception</var>: The exception object. -</li><li> <var>key</var>: The exception key. - -</li><li> <var>args</var>: The arguments thrown with the exception. +</li><li> <var>stack</var>: The call stack at the point of the exception. </li></ol> -<p>The default behavior is to re-throw the error. +<p>If no error handler is specified, exceptions will simply be re-raised. </p> </li></ul> diff --git a/projects.scm b/projects.scm index 4abb262..9054feb 100644 --- a/projects.scm +++ b/projects.scm @@ -317,7 +317,7 @@ Scheme.") (p (small ,(anchor "chickadee sprite by Refuzzle, CC0" "http://opengameart.org/content/winter-birds")))) #:requirements '("GNU Guile >= 3.0.0" - "Guile-SDL2 >= 0.7.0" + "Guile-SDL2 >= 0.8.0" "Guile-OpenGL >= 0.1.0" "OpenAL" "Vorbis" @@ -326,7 +326,8 @@ Scheme.") "GNU Readline") #:license "GNU GPLv3+" #:releases - `(("0.8.0" ,(date 2021 10 07)) + `(("0.9.0" ,(date 2022 10 25)) + ("0.8.0" ,(date 2021 10 07)) ("0.7.0" ,(date 2021 04 13)) ("0.6.0" ,(date 2020 11 19)) ("0.5.0" ,(date 2020 04 08)) |