<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.digitalmzx.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Asgromo</id>
	<title>MZXWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.digitalmzx.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Asgromo"/>
	<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/Special:Contributions/Asgromo"/>
	<updated>2026-05-12T14:27:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7810</id>
		<title>MegaZeux</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7810"/>
		<updated>2012-05-29T00:43:42Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: more pix and crap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Caverns.png|300px|thumb|alt=Screenshot of Caverns of Zeux|[[Caverns of Zeux]], the original MegaZeux game]]&lt;br /&gt;
'''MegaZeux''' is a game creation system created by [[Gregory Janson]]. It was inspired by [[ZZT]], for which Greg and other members of [[Software Visions]] had created several games beforehand. The first version, [[Changelog for 1.00g|1.00g]], was uploaded to AOL on December 4, 1994.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Robotic===&lt;br /&gt;
''See also: [[Robotic]]''&lt;br /&gt;
&lt;br /&gt;
Robotic is MegaZeux's object-oriented programming language. Some parts of the language, as well as the concept itself, are based on [[ZZT|ZZT's]] ZZT-OOP, though Robotic is much more advanced than ZZT-OOP.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Shareware Versions===&lt;br /&gt;
[[File:mzx100g.png|thumb|alt=Screenshot of MegaZeux 1.00g|MegaZeux 1.00g]]&lt;br /&gt;
MegaZeux 1.00g was released on AOL on December 4, 1994 as an executable for IBM PCs running MS-DOS. It was designed as an improvement over [[ZZT]], including digital sound and music on compatible hardware, editable [[character set|character sets]], and adjustable [[board]] sizes.&lt;br /&gt;
&lt;br /&gt;
In 1995, Janson overhauled MegaZeux with a near-total rewrite for 2.00. User-facing changes included editing of the default 16-color EGA palette, a restyled interface, a more versatile world editor and Robotic language, and myriad fixes for bugs and inconsistencies.&lt;br /&gt;
&lt;br /&gt;
MegaZeux 2.50 followed in 1996, using the more compatible, Windows-tolerant [[BWSB]] sound library. Shortly thereafter, [[Gregory Janson]] released version 2.51, his last, with minor bug fixes and additions. Janson later released MegaZeux's existing incomplete source code under the terms of the GNU GPL.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux After Janson===&lt;br /&gt;
====Spider Versions====&lt;br /&gt;
With MegaZeux's source code newly available, [[Spider124]] presented a beta of his own version, MegaZeux 2.51 s1, in 1999. Among new features were a vastly expanded [[counter]] limit (1000, compared to 2.51's 50 counters), true mouse support, player coordinate counters, and many bug fixes. Three more &amp;quot;Spider&amp;quot; versions (the latter two credited to [[JZig]]) were released until early 2000, bowing out with 2.51 s3.1.&lt;br /&gt;
&lt;br /&gt;
In 2001, [[MadBrain]] added the [[bimesg]] built-in counter to optionally disable MZX's default message text and trivially removed password protection for editing worlds, releasing his modifications as MZX 2.51 s3.2. Madbrain further modified s3.2 with the introduction of the [[Super MZX|SMZX]] graphics mode, releasing this version as SMZX 100 Alpha.&lt;br /&gt;
&lt;br /&gt;
====MegaZeux 2.7 and mzxlib====&lt;br /&gt;
MZX 2.7 was an effort spearheaded by JZig to completely rewrite MegaZeux in C++, with a new graphics engine, audio code, and support for alternative operating systems. Most initial coding was done by [[MenTaLguY]], until JZig took over in 1999. [[piman]], though not writing substantial code himself, maintained the project's SourceForge page. JZig ended development of MZX 2.7 in 2001. It was not picked up afterwards.&lt;br /&gt;
&lt;br /&gt;
====MZXak====&lt;br /&gt;
[[File:Smzxtetris.png|250px|thumb|alt=Screenshot of SMZX Tetris|Akwende's SMZX Tetris, showcasing Super MZX mode]]&lt;br /&gt;
[[Akwende]] released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak made numerous changes and extensions (some of which, like the multi-colored configuration dialogs, were determined by the community to be too useless to warrant the memory usage), including [[file access]], robot targeting, and built-in SMZX mode. All MZXak versions included Akwende's MZX version of Tetris, which demonstrated the use of SMZX graphics.&lt;br /&gt;
&lt;br /&gt;
MZXak 1.0 was pulled a few months after release from [[DigitalMZX]] due to Akwende's failure to release his source code under the terms of the GNU GPL. Following public debate and heel-dragging, he eventually released the source. Other MZXak 1.0 controversy involved its broken forward compatibility, which led to MZXak games being playable but not necessarily functioning in MZX2.51s3.1. This broke [[ajs|wizdom's]] judging results in the [[Summer Dualstream Day of Zeux 2001|2001 DsDoZ]].&lt;br /&gt;
&lt;br /&gt;
MZXak 2.0 was released after much waiting, though the release sparked a fair bit of dispute due to the sudden timing with [[Koji|Koji's]] 2.60 release. MZXak 2.0 is notable for being the only code fork to completely die out.&lt;br /&gt;
&lt;br /&gt;
====2.60 through 2.70====&lt;br /&gt;
In 2002, Following the discussions about MZXak, Koji released MZX 2.60 and 2.61, including a subset of akwende's additions. [[Exophase]] energetically took over development of MegaZeux with 2.62. Features introduced between 2.62 and 2.70 (the last version of MegaZeux in [[DOS]]) include [[Expression|expressions]], [[Sprite|sprites]], [[String|strings]], [[Vlayer|the vlayer]], [[MZM|MZMs]], and [[Super MZX|SMZX Mode 2]].&lt;br /&gt;
&lt;br /&gt;
====MZX32====&lt;br /&gt;
During Exophase's development of MZX for DOS, [[BFeely]] began work on MZX32, intended as a port of MegaZeux for Windows. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was unstable and buggy, and deemed obsolete once Exophase began work on his SDL port. The last released version of MZX32 supported games created using MZX 2.69c.&lt;br /&gt;
&lt;br /&gt;
===SDL Port===&lt;br /&gt;
[[Exophase]] took most of the summer of 2004 to rewrite MegaZeux using SDL, in order to eliminate DOS-specific limitations, solve MegaZeux's accumulating compatibility issues, and eventually expand MegaZeux onto other platforms. The Robotic editor's source code, long missing, was entirely rewritten. Many other source modules were either completely rewritten or heavily revised. After intense testing, MZX 2.80 was released on August 9, 2004, only intended for 32-bit Windows platforms. A slew of bug reports arising from public testing shortly followed, and Exophase quickly updated with three incremental versions within one month, also adding official support for Linux and Mac OS X. Other MegaZeuxers helped in various capacities; for example, [[ajs|ajs's]] and [[MadBrain|mad's]] GDM conversion code was a basis for SAM conversion code. Later on, ajs would write support to abstract file operations for case sensitive file systems, and additional graphical renderers were designed by [[LogiCow]] and [[Mr_Alert]].&lt;br /&gt;
&lt;br /&gt;
===Current Development===&lt;br /&gt;
Most version upticks since the SDL port have added some functionality (e.g. multi-char editor, code search, ogg support), and all have significantly improved stability. MegaZeux is currently extending to handhelds and consoles: [[Oncer]] released a GP2X port, [[kvance]] a Nintendo DS port, Mr_Alert a Wii port, and Exophase has done preliminary PSP support.&lt;br /&gt;
&lt;br /&gt;
====MegaZeux Forks====&lt;br /&gt;
In early 2007, LogiCow created his own fork of the MZX source. The first version added the Draw command, allowing users to scale characters from the [[vlayer]]. It also served as an underlay (as opposed to an overlay). In more recent versions, the draw command was deleted. A select persisted in using the older versions for the draw command, much to the annoyance of those wishing to stay with Exophase's versions.&lt;br /&gt;
&lt;br /&gt;
A short time after the previous fork, LogiCow created another fork with an alternate renderer that scaled the graphics up to fit the screen, regardless of aspect ratio. This also allowed for seamless resizing of the MZX window when not running in full screen mode. logicow worked with ajs to merge these renderers into the mainline MZX versions, starting with 2.81e.&lt;br /&gt;
&lt;br /&gt;
LogiCow's final fork of MZX (based off of 2.81g) was solely to play [[Caverns of Zeux]] with enhanced graphics.&lt;br /&gt;
&lt;br /&gt;
LogiCow was not the only person to fork MZX; [[NihilistMatt]] created a fork called [[SquareMZX]]. SquareMZX knocked the resolution per-character to 8x8, but allowed a &amp;quot;quadrant&amp;quot; coloring system where each 2x2 section of any character can have its own color pair. This fork got very minor use; [[PROcrastination]] and the second [[RPG Skool Demo]] both could optionally use SquareMZX mode.&lt;br /&gt;
&lt;br /&gt;
[[zzo38]] is also desperately trying to make people care about his MZX fork. His version focuses on changes and &amp;quot;improvements&amp;quot; that are generally only of interest to him, notably support for [http://en.wikipedia.org/wiki/Forth_(programming_language) Forth], [[PZX#Features|among various other things]]. He also corrected a long standing, esoteric bug in the handling of built-in spider webs, which has been merged (with changes) into the existing codebase.  Despite the fact that zzo38 (and possibly [[smilymzx]], with his fixation on blinking text) is the only person who actually cares about any of these changes, zzo still claims to be working on it and released an initial version of it.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[https://sourceforge.net/projects/mzx32 MZX32 Project Page (Sourceforge)]&lt;br /&gt;
* [http://www.facebook.com/pages/MegaZeux/289985854404705 MegaZeux Facebook Page]&lt;br /&gt;
*[http://mzx.devzero.co.uk/ The MegaZeux Developer Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MegaZeux]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=File:Smzxtetris.png&amp;diff=7809</id>
		<title>File:Smzxtetris.png</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=File:Smzxtetris.png&amp;diff=7809"/>
		<updated>2012-05-29T00:38:58Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: Screenshot of Akwende's SMZX Tetris game&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of Akwende's SMZX Tetris game&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7808</id>
		<title>MegaZeux</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7808"/>
		<updated>2012-05-29T00:31:39Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: the forks are just not very notable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Caverns.png|thumb|alt=Screenshot of Caverns of Zeux|[[Caverns of Zeux]], the original MegaZeux game]]&lt;br /&gt;
'''MegaZeux''' is a game creation system created by [[Gregory Janson]]. It was inspired by [[ZZT]], for which Greg and other members of [[Software Visions]] had created several games beforehand. The first version, [[Changelog for 1.00g|1.00g]], was uploaded to AOL on December 4, 1994.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Robotic===&lt;br /&gt;
''See also: [[Robotic]]''&lt;br /&gt;
&lt;br /&gt;
Robotic is MegaZeux's object-oriented programming language. Some parts of the language, as well as the concept itself, are based on [[ZZT|ZZT's]] ZZT-OOP, though Robotic is much more advanced than ZZT-OOP.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Shareware Versions===&lt;br /&gt;
[[File:mzx100g.png|thumb|alt=Screenshot of MegaZeux 1.00g|MegaZeux 1.00g]]&lt;br /&gt;
MegaZeux 1.00g was released on AOL on December 4, 1994 as an executable for IBM PCs running MS-DOS. It was designed as an improvement over [[ZZT]], including digital sound and music on compatible hardware, editable [[character set|character sets]], and adjustable [[board]] sizes.&lt;br /&gt;
&lt;br /&gt;
In 1995, Janson overhauled MegaZeux with a near-total rewrite for 2.00. User-facing changes included editing of the default 16-color EGA palette, a restyled interface, a more versatile world editor and Robotic language, and myriad fixes for bugs and inconsistencies.&lt;br /&gt;
&lt;br /&gt;
MegaZeux 2.50 followed in 1996, using the more compatible, Windows-tolerant [[BWSB]] sound library. Shortly thereafter, [[Gregory Janson]] released version 2.51, his last, with minor bug fixes and additions. Janson later released MegaZeux's existing incomplete source code under the terms of the GNU GPL.&lt;br /&gt;
&lt;br /&gt;
===Spider Versions===&lt;br /&gt;
With MegaZeux's source code newly available, [[Spider124]] presented a beta of his own version, MegaZeux 2.51 s1, in 1999. Among new features were a vastly expanded [[counter]] limit (1000, compared to 2.51's 50 counters), true mouse support, player coordinate counters, and many bug fixes. Three more &amp;quot;Spider&amp;quot; versions (the latter two credited to [[JZig]]) were released until early 2000, bowing out with 2.51 s3.1.&lt;br /&gt;
&lt;br /&gt;
In 2001, [[MadBrain]] added the [[bimesg]] built-in counter to optionally disable MZX's default message text and trivially removed password protection for editing worlds, releasing his modifications as MZX 2.51 s3.2. Madbrain further modified s3.2 with the introduction of the [[Super MZX|SMZX]] graphics mode, releasing this version as SMZX 100 Alpha.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux 2.7 and mzxlib===&lt;br /&gt;
MZX 2.7 was an effort spearheaded by JZig to completely rewrite MegaZeux in C++, with a new graphics engine, audio code, and support for alternative operating systems. Most initial coding was done by [[MenTaLguY]], until JZig took over in 1999. [[piman]], though not writing substantial code himself, maintained the project's SourceForge page. JZig ended development of MZX 2.7 in 2001. It was not picked up afterwards.&lt;br /&gt;
&lt;br /&gt;
===MZXak===&lt;br /&gt;
[[Akwende]] released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak made numerous changes and extensions (some of which, like the multi-colored configuration dialogs, were determined by the community to be too useless to warrant the memory usage), including [[file access]], robot targeting, and built-in SMZX mode. All MZXak versions included Akwende's MZX version of Tetris, which demonstrated the use of SMZX graphics.&lt;br /&gt;
&lt;br /&gt;
MZXak 1.0 was pulled a few months after release from [[DigitalMZX]] due to Akwende's failure to release his source code under the terms of the GNU GPL. Following public debate and heel-dragging, he eventually released the source. Other MZXak 1.0 controversy involved its broken forward compatibility, which led to MZXak games being playable but not necessarily functioning in MZX2.51s3.1. This broke [[ajs|wizdom's]] judging results in the [[Summer Dualstream Day of Zeux 2001|2001 DsDoZ]].&lt;br /&gt;
&lt;br /&gt;
MZXak 2.0 was released after much waiting, though the release sparked a fair bit of dispute due to the sudden timing with [[Koji|Koji's]] 2.60 release. MZXak 2.0 is notable for being the only code fork to completely die out.&lt;br /&gt;
&lt;br /&gt;
===2.60 through 2.70===&lt;br /&gt;
In 2002, Following the discussions about MZXak, Koji released MZX 2.60 and 2.61, including a subset of akwende's additions. [[Exophase]] energetically took over development of MegaZeux with 2.62. Features introduced between 2.62 and 2.70 (the last version of MegaZeux in [[DOS]]) include [[Expression|expressions]], [[Sprite|sprites]], [[String|strings]], [[Vlayer|the vlayer]], [[MZM|MZMs]], and [[Super MZX|SMZX Mode 2]].&lt;br /&gt;
&lt;br /&gt;
===MZX32===&lt;br /&gt;
During Exophase's development of MZX for DOS, [[BFeely]] began work on MZX32, intended as a port of MegaZeux for Windows. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was unstable and buggy, and deemed obsolete once Exophase began work on his SDL port. The last released version of MZX32 supported games created using MZX 2.69c.&lt;br /&gt;
&lt;br /&gt;
===SDL Port===&lt;br /&gt;
[[Exophase]] took most of the summer of 2004 to rewrite MegaZeux using SDL, in order to eliminate DOS-specific limitations, solve MegaZeux's accumulating compatibility issues, and eventually expand MegaZeux onto other platforms. The Robotic editor's source code, long missing, was entirely rewritten. Many other source modules were either completely rewritten or heavily revised. After intense testing, MZX 2.80 was released on August 9, 2004, only intended for 32-bit Windows platforms. A slew of bug reports arising from public testing shortly followed, and Exophase quickly updated with three incremental versions within one month, also adding official support for Linux and Mac OS X. Other MegaZeuxers helped in various capacities; for example, [[ajs|ajs's]] and [[MadBrain|mad's]] GDM conversion code was a basis for SAM conversion code. Later on, ajs would write support to abstract file operations for case sensitive file systems, and additional graphical renderers were designed by [[LogiCow]] and [[Mr_Alert]].&lt;br /&gt;
&lt;br /&gt;
===Current Development===&lt;br /&gt;
Most version upticks since the SDL port have added some functionality (e.g. multi-char editor, code search, ogg support), and all have significantly improved stability. MegaZeux is currently extending to handhelds and consoles: [[Oncer]] released a GP2X port, [[kvance]] a Nintendo DS port, Mr_Alert a Wii port, and Exophase has done preliminary PSP support.&lt;br /&gt;
&lt;br /&gt;
====MegaZeux Forks====&lt;br /&gt;
In early 2007, LogiCow created his own fork of the MZX source. The first version added the Draw command, allowing users to scale characters from the [[vlayer]]. It also served as an underlay (as opposed to an overlay). In more recent versions, the draw command was deleted. A select persisted in using the older versions for the draw command, much to the annoyance of those wishing to stay with Exophase's versions.&lt;br /&gt;
&lt;br /&gt;
A short time after the previous fork, LogiCow created another fork with an alternate renderer that scaled the graphics up to fit the screen, regardless of aspect ratio. This also allowed for seamless resizing of the MZX window when not running in full screen mode. logicow worked with ajs to merge these renderers into the mainline MZX versions, starting with 2.81e.&lt;br /&gt;
&lt;br /&gt;
LogiCow's final fork of MZX (based off of 2.81g) was solely to play [[Caverns of Zeux]] with enhanced graphics.&lt;br /&gt;
&lt;br /&gt;
LogiCow was not the only person to fork MZX; [[NihilistMatt]] created a fork called [[SquareMZX]]. SquareMZX knocked the resolution per-character to 8x8, but allowed a &amp;quot;quadrant&amp;quot; coloring system where each 2x2 section of any character can have its own color pair. This fork got very minor use; [[PROcrastination]] and the second [[RPG Skool Demo]] both could optionally use SquareMZX mode.&lt;br /&gt;
&lt;br /&gt;
[[zzo38]] is also desperately trying to make people care about his MZX fork. His version focuses on changes and &amp;quot;improvements&amp;quot; that are generally only of interest to him, notably support for [http://en.wikipedia.org/wiki/Forth_(programming_language) Forth], [[PZX#Features|among various other things]]. He also corrected a long standing, esoteric bug in the handling of built-in spider webs, which has been merged (with changes) into the existing codebase.  Despite the fact that zzo38 (and possibly [[smilymzx]], with his fixation on blinking text) is the only person who actually cares about any of these changes, zzo still claims to be working on it and released an initial version of it.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[https://sourceforge.net/projects/mzx32 MZX32 Project Page (Sourceforge)]&lt;br /&gt;
* [http://www.facebook.com/pages/MegaZeux/289985854404705 MegaZeux Facebook Page]&lt;br /&gt;
*[http://mzx.devzero.co.uk/ The MegaZeux Developer Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MegaZeux]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7807</id>
		<title>MegaZeux</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7807"/>
		<updated>2012-05-29T00:30:27Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: oops, lost some good stuff there&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Caverns.png|thumb|alt=Screenshot of Caverns of Zeux|[[Caverns of Zeux]], the original MegaZeux game]]&lt;br /&gt;
'''MegaZeux''' is a game creation system created by [[Gregory Janson]]. It was inspired by [[ZZT]], for which Greg and other members of [[Software Visions]] had created several games beforehand. The first version, [[Changelog for 1.00g|1.00g]], was uploaded to AOL on December 4, 1994.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Robotic===&lt;br /&gt;
''See also: [[Robotic]]''&lt;br /&gt;
&lt;br /&gt;
Robotic is MegaZeux's object-oriented programming language. Some parts of the language, as well as the concept itself, are based on [[ZZT|ZZT's]] ZZT-OOP, though Robotic is much more advanced than ZZT-OOP.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Shareware Versions===&lt;br /&gt;
[[File:mzx100g.png|thumb|alt=Screenshot of MegaZeux 1.00g|MegaZeux 1.00g]]&lt;br /&gt;
MegaZeux 1.00g was released on AOL on December 4, 1994 as an executable for IBM PCs running MS-DOS. It was designed as an improvement over [[ZZT]], including digital sound and music on compatible hardware, editable [[character set|character sets]], and adjustable [[board]] sizes.&lt;br /&gt;
&lt;br /&gt;
In 1995, Janson overhauled MegaZeux with a near-total rewrite for 2.00. User-facing changes included editing of the default 16-color EGA palette, a restyled interface, a more versatile world editor and Robotic language, and myriad fixes for bugs and inconsistencies.&lt;br /&gt;
&lt;br /&gt;
MegaZeux 2.50 followed in 1996, using the more compatible, Windows-tolerant [[BWSB]] sound library. Shortly thereafter, [[Gregory Janson]] released version 2.51, his last, with minor bug fixes and additions. Janson later released MegaZeux's existing incomplete source code under the terms of the GNU GPL.&lt;br /&gt;
&lt;br /&gt;
===Spider Versions===&lt;br /&gt;
With MegaZeux's source code newly available, [[Spider124]] presented a beta of his own version, MegaZeux 2.51 s1, in 1999. Among new features were a vastly expanded [[counter]] limit (1000, compared to 2.51's 50 counters), true mouse support, player coordinate counters, and many bug fixes. Three more &amp;quot;Spider&amp;quot; versions (the latter two credited to [[JZig]]) were released until early 2000, bowing out with 2.51 s3.1.&lt;br /&gt;
&lt;br /&gt;
In 2001, [[MadBrain]] added the [[bimesg]] built-in counter to optionally disable MZX's default message text and trivially removed password protection for editing worlds, releasing his modifications as MZX 2.51 s3.2. Madbrain further modified s3.2 with the introduction of the [[Super MZX|SMZX]] graphics mode, releasing this version as SMZX 100 Alpha.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux 2.7 and mzxlib===&lt;br /&gt;
MZX 2.7 was an effort spearheaded by JZig to completely rewrite MegaZeux in C++, with a new graphics engine, audio code, and support for alternative operating systems. Most initial coding was done by [[MenTaLguY]], until JZig took over in 1999. [[piman]], though not writing substantial code himself, maintained the project's SourceForge page. JZig ended development of MZX 2.7 in 2001. It was not picked up afterwards.&lt;br /&gt;
&lt;br /&gt;
===MZXak===&lt;br /&gt;
[[Akwende]] released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak made numerous changes and extensions (some of which, like the multi-colored configuration dialogs, were determined by the community to be too useless to warrant the memory usage), including [[file access]], robot targeting, and built-in SMZX mode. All MZXak versions included Akwende's MZX version of Tetris, which demonstrated the use of SMZX graphics.&lt;br /&gt;
&lt;br /&gt;
MZXak 1.0 was pulled a few months after release from [[DigitalMZX]] due to Akwende's failure to release his source code under the terms of the GNU GPL. Following public debate and heel-dragging, he eventually released the source. Other MZXak 1.0 controversy involved its broken forward compatibility, which led to MZXak games being playable but not necessarily functioning in MZX2.51s3.1. This broke [[ajs|wizdom's]] judging results in the [[Summer Dualstream Day of Zeux 2001|2001 DsDoZ]].&lt;br /&gt;
&lt;br /&gt;
MZXak 2.0 was released after much waiting, though the release sparked a fair bit of dispute due to the sudden timing with [[Koji|Koji's]] 2.60 release. MZXak 2.0 is notable for being the only code fork to completely die out.&lt;br /&gt;
&lt;br /&gt;
===2.60 through 2.70===&lt;br /&gt;
In 2002, Following the discussions about MZXak, Koji released MZX 2.60 and 2.61, including a subset of akwende's additions. [[Exophase]] energetically took over development of MegaZeux with 2.62. Features introduced between 2.62 and 2.70 (the last version of MegaZeux in [[DOS]]) include [[Expression|expressions]], [[Sprite|sprites]], [[String|strings]], [[Vlayer|the vlayer]], [[MZM|MZMs]], and [[Super MZX|SMZX Mode 2]].&lt;br /&gt;
&lt;br /&gt;
===MZX32===&lt;br /&gt;
During Exophase's development of MZX for DOS, [[BFeely]] began work on MZX32, intended as a port of MegaZeux for Windows. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was unstable and buggy, and deemed obsolete once Exophase began work on his SDL port. The last released version of MZX32 supported games created using MZX 2.69c.&lt;br /&gt;
&lt;br /&gt;
===SDL Port===&lt;br /&gt;
[[Exophase]] took most of the summer of 2004 to rewrite MegaZeux using SDL, in order to eliminate DOS-specific limitations, solve MegaZeux's accumulating compatibility issues, and eventually expand MegaZeux onto other platforms. The Robotic editor's source code, long missing, was entirely rewritten. Many other source modules were either completely rewritten or heavily revised. After intense testing, MZX 2.80 was released on August 9, 2004, only intended for 32-bit Windows platforms. A slew of bug reports arising from public testing shortly followed, and Exophase quickly updated with three incremental versions within one month, also adding official support for Linux and Mac OS X. Other MegaZeuxers helped in various capacities; for example, [[ajs|ajs's]] and [[MadBrain|mad's]] GDM conversion code was a basis for SAM conversion code. Later on, ajs would write support to abstract file operations for case sensitive file systems, and additional graphical renderers were designed by [[LogiCow]] and [[Mr_Alert]].&lt;br /&gt;
&lt;br /&gt;
===Current Development===&lt;br /&gt;
Most version upticks since the SDL port have added some functionality (e.g. multi-char editor, code search, ogg support), and all have significantly improved stability. MegaZeux is currently extending to handhelds and consoles: [[Oncer]] released a GP2X port, [[kvance]] a Nintendo DS port, Mr_Alert a Wii port, and Exophase has done preliminary PSP support.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux Forks===&lt;br /&gt;
In early 2007, LogiCow created his own fork of the MZX source. The first version added the Draw command, allowing users to scale characters from the [[vlayer]]. It also served as an underlay (as opposed to an overlay). In more recent versions, the draw command was deleted. A select persisted in using the older versions for the draw command, much to the annoyance of those wishing to stay with Exophase's versions.&lt;br /&gt;
&lt;br /&gt;
A short time after the previous fork, LogiCow created another fork with an alternate renderer that scaled the graphics up to fit the screen, regardless of aspect ratio. This also allowed for seamless resizing of the MZX window when not running in full screen mode. logicow worked with ajs to merge these renderers into the mainline MZX versions, starting with 2.81e.&lt;br /&gt;
&lt;br /&gt;
LogiCow's final fork of MZX (based off of 2.81g) was solely to play [[Caverns of Zeux]] with enhanced graphics.&lt;br /&gt;
&lt;br /&gt;
LogiCow was not the only person to fork MZX; [[NihilistMatt]] created a fork called [[SquareMZX]]. SquareMZX knocked the resolution per-character to 8x8, but allowed a &amp;quot;quadrant&amp;quot; coloring system where each 2x2 section of any character can have its own color pair. This fork got very minor use; [[PROcrastination]] and the second [[RPG Skool Demo]] both could optionally use SquareMZX mode.&lt;br /&gt;
&lt;br /&gt;
[[zzo38]] is also desperately trying to make people care about his MZX fork. His version focuses on changes and &amp;quot;improvements&amp;quot; that are generally only of interest to him, notably support for [http://en.wikipedia.org/wiki/Forth_(programming_language) Forth], [[PZX#Features|among various other things]]. He also corrected a long standing, esoteric bug in the handling of built-in spider webs, which has been merged (with changes) into the existing codebase.  Despite the fact that zzo38 (and possibly [[smilymzx]], with his fixation on blinking text) is the only person who actually cares about any of these changes, zzo still claims to be working on it and released an initial version of it.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[https://sourceforge.net/projects/mzx32 MZX32 Project Page (Sourceforge)]&lt;br /&gt;
* [http://www.facebook.com/pages/MegaZeux/289985854404705 MegaZeux Facebook Page]&lt;br /&gt;
*[http://mzx.devzero.co.uk/ The MegaZeux Developer Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MegaZeux]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7806</id>
		<title>MegaZeux</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=MegaZeux&amp;diff=7806"/>
		<updated>2012-05-29T00:19:58Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: this page previously featured several additional features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Caverns.png|thumb|alt=Screenshot of Caverns of Zeux|[[Caverns of Zeux]], the original MegaZeux game]]&lt;br /&gt;
'''MegaZeux''' is a game creation system created by [[Gregory Janson]]. It was inspired by [[ZZT]], for which Greg and other members of [[Software Visions]] had created several games beforehand. The first version, [[Changelog for 1.00g|1.00g]], was uploaded to AOL on December 4, 1994.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Robotic===&lt;br /&gt;
''See also: [[Robotic]]''&lt;br /&gt;
&lt;br /&gt;
Robotic is MegaZeux's object-oriented programming language. Some parts of the language, as well as the concept itself, are based on [[ZZT|ZZT's]] ZZT-OOP, though Robotic is much more advanced than ZZT-OOP.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Shareware Versions===&lt;br /&gt;
[[File:mzx100g.png|thumb|alt=Screenshot of MegaZeux 1.00g|MegaZeux 1.00g]]&lt;br /&gt;
MegaZeux 1.00g was released on AOL on December 4, 1994 as an executable for IBM PCs running MS-DOS. It was designed as an improvement over [[ZZT]], including digital sound and music on compatible hardware, editable [[character set|character sets]], and adjustable [[board]] sizes.&lt;br /&gt;
&lt;br /&gt;
In 1995, Janson overhauled MegaZeux with a near-total rewrite for 2.00. User-facing changes included editing of the default 16-color EGA palette, a restyled interface, a more versatile world editor and Robotic language, and myriad fixes for bugs and inconsistencies.&lt;br /&gt;
&lt;br /&gt;
MegaZeux 2.50 followed in 1996, using the more compatible, Windows-tolerant [[BWSB]] sound library. Shortly thereafter, [[Gregory Janson]] released version 2.51, his last, with minor bug fixes and additions. Janson later released MegaZeux's existing incomplete source code under the terms of the GNU GPL.&lt;br /&gt;
&lt;br /&gt;
===Spider Versions===&lt;br /&gt;
With MegaZeux's source code newly available, [[Spider124]] presented a beta of his own version, MegaZeux 2.51 s1, in 1999. Among new features were a vastly expanded [[counter]] limit (1000, compared to 2.51's 50 counters), true mouse support, player coordinate counters, and many bug fixes. Three more &amp;quot;Spider&amp;quot; versions (the latter two credited to [[JZig]]) were released until early 2000, bowing out with 2.51 s3.1.&lt;br /&gt;
&lt;br /&gt;
In 2001, [[MadBrain]] added the [[bimesg]] built-in counter to optionally disable MZX's default message text and trivially removed password protection for editing worlds, releasing his modifications as MZX 2.51 s3.2. Madbrain further modified s3.2 with the introduction of the [[Super MZX|SMZX]] graphics mode, releasing this version as SMZX 100 Alpha.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux 2.7 and mzxlib===&lt;br /&gt;
MZX 2.7 was an effort spearheaded by JZig to completely rewrite MegaZeux in C++, with a new graphics engine, audio code, and support for alternative operating systems. Most initial coding was done by [[MenTaLguY]], until JZig took over in 1999. [[piman]], though not writing substantial code himself, maintained the project's SourceForge page. JZig ended development of MZX 2.7 in 2001. It was not picked up afterwards.&lt;br /&gt;
&lt;br /&gt;
===MZXak===&lt;br /&gt;
[[Akwende]] released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak made numerous changes and extensions (some of which, like the multi-colored configuration dialogs, were determined by the community to be too useless to warrant the memory usage), including [[file access]], robot targeting, and built-in SMZX mode. All MZXak versions included Akwende's MZX version of Tetris, which demonstrated the use of SMZX graphics.&lt;br /&gt;
&lt;br /&gt;
MZXak 1.0 was pulled a few months after release from [[DigitalMZX]] due to Akwende's failure to release his source code under the terms of the GNU GPL. Following public debate and heel-dragging, he eventually released the source. Other MZXak 1.0 controversy involved its broken forward compatibility, which led to MZXak games being playable but not necessarily functioning in MZX2.51s3.1. This broke [[ajs|wizdom's]] judging results in the [[Summer Dualstream Day of Zeux 2001|2001 DsDoZ]].&lt;br /&gt;
&lt;br /&gt;
MZXak 2.0 was released after much waiting, though the release sparked a fair bit of dispute due to the sudden timing with [[Koji|Koji's]] 2.60 release. MZXak 2.0 is notable for being the only code fork to completely die out.&lt;br /&gt;
&lt;br /&gt;
===2.60 through 2.70===&lt;br /&gt;
In 2002, Following the discussions about MZXak, Koji released MZX 2.60 and 2.61, including a subset of akwende's additions. [[Exophase]] energetically took over development of MegaZeux with 2.62. Features introduced between 2.62 and 2.70 (the last version of MegaZeux in [[DOS]]) include [[Expression|expressions]], [[Sprite|sprites]], [[String|strings]], [[Vlayer|the vlayer]], [[MZM|MZMs]], and [[Super MZX|SMZX Mode 2]].&lt;br /&gt;
&lt;br /&gt;
===MZX32===&lt;br /&gt;
During Exophase's development of MZX for DOS, [[BFeely]] began work on MZX32, intended as a port of MegaZeux for Windows. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was unstable and buggy, and deemed obsolete once Exophase began work on his SDL port. The last released version of MZX32 supported games created using MZX 2.69c.&lt;br /&gt;
&lt;br /&gt;
===SDL Port===&lt;br /&gt;
[[Exophase]] took most of the summer of 2004 to rewrite MegaZeux using SDL, in order to eliminate DOS-specific limitations, solve MegaZeux's accumulating compatibility issues, and eventually expand MegaZeux onto other platforms. The Robotic editor's source code, long missing, was entirely rewritten. Many other source modules were either completely rewritten or heavily revised. After intense testing, MZX 2.80 was released on Aug 9 2004, with workability only intended for Windows 32 platforms. A slew of bug reports arising from public testing shortly followed, and Exophase quickly updated with three incremental versions within one month, also officially adding support for Linux and Mac OS X. Other MegaZeuxers helped in various capacities; for example, [[ajs|ajs's]] and [[MadBrain|mad's]] GDM conversion code was a basis for SAM conversion code. Later on, ajs would write support to abstract file operations for case sensitive file systems, and additional graphical renderers were designed by [[LogiCow]] and [[Mr_Alert]].&lt;br /&gt;
&lt;br /&gt;
===Current Development===&lt;br /&gt;
&lt;br /&gt;
===MegaZeux Forks===&lt;br /&gt;
In early 2007, LogiCow created his own fork of the MZX source. The first version added the Draw command, allowing users to scale characters from the [[vlayer]]. It also served as an underlay (as opposed to an overlay). In more recent versions, the draw command was deleted. A select persisted in using the older versions for the draw command, much to the annoyance of those wishing to stay with Exophase's versions.&lt;br /&gt;
&lt;br /&gt;
A short time after the previous fork, LogiCow created another fork with an alternate renderer that scaled the graphics up to fit the screen, regardless of aspect ratio. This also allowed for seamless resizing of the MZX window when not running in full screen mode. logicow worked with ajs to merge these renderers into the mainline MZX versions, starting with 2.81e.&lt;br /&gt;
&lt;br /&gt;
LogiCow's final fork of MZX (based off of 2.81g) was solely to play [[Caverns of Zeux]] with enhanced graphics.&lt;br /&gt;
&lt;br /&gt;
LogiCow was not the only person to fork MZX; [[NihilistMatt]] created a fork called [[SquareMZX]]. SquareMZX knocked the resolution per-character to 8x8, but allowed a &amp;quot;quadrant&amp;quot; coloring system where each 2x2 section of any character can have its own color pair. This fork got very minor use; [[PROcrastination]] and the second [[RPG Skool Demo]] both could optionally use SquareMZX mode.&lt;br /&gt;
&lt;br /&gt;
[[zzo38]] is also desperately trying to make people care about his MZX fork. His version focuses on changes and &amp;quot;improvements&amp;quot; that are generally only of interest to him, notably support for [http://en.wikipedia.org/wiki/Forth_(programming_language) Forth], [[PZX#Features|among various other things]]. He also corrected a long standing, esoteric bug in the handling of built-in spider webs, which has been merged (with changes) into the existing codebase.  Despite the fact that zzo38 (and possibly [[smilymzx]], with his fixation on blinking text) is the only person who actually cares about any of these changes, zzo still claims to be working on it and released an initial version of it.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[https://sourceforge.net/projects/mzx32 MZX32 Project Page (Sourceforge)]&lt;br /&gt;
* [http://www.facebook.com/pages/MegaZeux/289985854404705 MegaZeux Facebook Page]&lt;br /&gt;
*[http://mzx.devzero.co.uk/ The MegaZeux Developer Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MegaZeux]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=File:Caverns.png&amp;diff=7805</id>
		<title>File:Caverns.png</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=File:Caverns.png&amp;diff=7805"/>
		<updated>2012-05-29T00:17:19Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: Screenshot of the Caverns of Zeux's first board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of the Caverns of Zeux's first board&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=File:Mzx100g.png&amp;diff=7804</id>
		<title>File:Mzx100g.png</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=File:Mzx100g.png&amp;diff=7804"/>
		<updated>2012-05-28T22:35:55Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: Screenshot of MegaZeux 1.00g&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of MegaZeux 1.00g&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Sprite_Code_Examples&amp;diff=7278</id>
		<title>Sprite Code Examples</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Sprite_Code_Examples&amp;diff=7278"/>
		<updated>2010-01-18T18:16:18Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: /* Example 2.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
This article contains all of the code described in the [[Sprite#Sprite Tutorial|Sprite Tutorial]].&lt;br /&gt;
==Example 1.1==&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;spr0_refx&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr0_refy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr0_width&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr0_height&amp;quot; to 3&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 put c?? Sprite p00 at &amp;quot;x&amp;quot; &amp;quot;y&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;down&amp;quot;&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;up&amp;quot;&lt;br /&gt;
 dec &amp;quot;y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;down&amp;quot;&lt;br /&gt;
 inc &amp;quot;y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;left&amp;quot;&lt;br /&gt;
 dec &amp;quot;x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;right&amp;quot;&lt;br /&gt;
 inc &amp;quot;x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
[[Sprite#E1.1|Back]]&lt;br /&gt;
==Example 1.2==&lt;br /&gt;
 lockplayer&lt;br /&gt;
 '''set &amp;quot;local&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to 5'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to 5'''&lt;br /&gt;
 set &amp;quot;spr'''&amp;amp;local&amp;amp;'''_refx&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr'''&amp;amp;local&amp;amp;'''_refy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr'''&amp;amp;local&amp;amp;'''_width&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr'''&amp;amp;local&amp;amp;'''_height&amp;quot; to 3&lt;br /&gt;
 '''goto &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;'''#'''up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;'''#'''left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;'''#'''right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;'''#'''down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;'''#'''up&amp;quot;&lt;br /&gt;
 '''if &amp;quot;local3&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 dec '''&amp;quot;local3&amp;quot;''' by 1&lt;br /&gt;
 '''goto &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 goto '''&amp;quot;#return&amp;quot;'''&lt;br /&gt;
 : &amp;quot;'''#'''down&amp;quot;&lt;br /&gt;
 '''if &amp;quot;local3&amp;quot; &amp;gt;= &amp;quot;(25-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 inc '''&amp;quot;local3&amp;quot;''' by 1&lt;br /&gt;
 '''goto &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 goto '''&amp;quot;#return&amp;quot;'''&lt;br /&gt;
 : &amp;quot;'''#'''left&amp;quot;&lt;br /&gt;
 '''if &amp;quot;local2&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 dec '''&amp;quot;local2&amp;quot;''' by 1&lt;br /&gt;
 '''goto &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 goto '''&amp;quot;#return&amp;quot;'''&lt;br /&gt;
 : &amp;quot;'''#'''right&amp;quot;&lt;br /&gt;
 '''if &amp;quot;local2&amp;quot; &amp;gt;= &amp;quot;(80-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 inc '''&amp;quot;local2&amp;quot;''' by 1&lt;br /&gt;
 '''goto &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 goto '''&amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 '''put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
[[Sprite#E1.2|Back]]&lt;br /&gt;
==Example 1.3==&lt;br /&gt;
 '''. &amp;quot;Global robot&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr_yorder&amp;quot; to 1'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to 5&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to 5&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to 3&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to 2'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to 3'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to 1'''&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 '''if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 dec &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;gt;= &amp;quot;(25-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 '''if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 inc &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 '''if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 dec &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;gt;= &amp;quot;(80-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 '''if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 inc &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
[[Sprite#E1.3|Back]]&lt;br /&gt;
==Example 2.1==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to 83&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to 86&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 . &amp;quot;Your values may differ, so please change them to suit.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to '''&amp;quot;robot_id&amp;quot;'''&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to '''&amp;quot;thisx&amp;quot;'''&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to '''&amp;quot;thisy&amp;quot;'''&lt;br /&gt;
 '''gotoxy &amp;quot;local&amp;quot; 0'''&lt;br /&gt;
 '''. &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to '''&amp;quot;spr_p_x&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to '''&amp;quot;spr_p_y&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to '''&amp;quot;spr_p_w&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to '''&amp;quot;spr_p_h&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to '''&amp;quot;spr_p_cx&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to '''&amp;quot;spr_p_cy&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to '''&amp;quot;spr_p_cw&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to '''&amp;quot;spr_p_ch&amp;quot;'''&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then '''&amp;quot;collision&amp;quot;'''&lt;br /&gt;
 dec &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;gt;= &amp;quot;(25-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then '''&amp;quot;collision&amp;quot;'''&lt;br /&gt;
 inc &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then '''&amp;quot;collision&amp;quot;'''&lt;br /&gt;
 dec &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;gt;= &amp;quot;(80-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then '''&amp;quot;collision&amp;quot;'''&lt;br /&gt;
 inc &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ''': &amp;quot;collision&amp;quot;'''&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''goto &amp;quot;#collide('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot;'''&lt;br /&gt;
 '''send &amp;quot;spr('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot; to &amp;quot;touch&amp;quot;'''&lt;br /&gt;
 '''loop for &amp;quot;('spr_collisions'-1)&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Key robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_k_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_k_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_k_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_k_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_k_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_k_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_k_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_k_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 inc &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Door robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_d_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_d_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_d_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_d_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_d_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_d_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_d_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_d_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;end&amp;quot;&lt;br /&gt;
 dec &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 : &amp;quot;end&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
[[Sprite#E2.1|Back]]&lt;br /&gt;
&lt;br /&gt;
==Example 2.2==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to 83&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to 86&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 '''set &amp;quot;num_keys&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;num_doors&amp;quot; to 0'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 '''set &amp;quot;playersprite&amp;quot; to &amp;quot;local&amp;quot;'''&lt;br /&gt;
 . &amp;quot;&amp;amp;spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_p_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_p_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_p_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_p_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_p_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_p_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_p_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_p_ch&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 if &amp;quot;local3&amp;quot; &amp;gt;= &amp;quot;(25-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;local3&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;lt;= 0 then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 if &amp;quot;local2&amp;quot; &amp;gt;= &amp;quot;(80-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;local2&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;collision&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 goto &amp;quot;#collide('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot;&lt;br /&gt;
 send &amp;quot;spr('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot; to &amp;quot;touch&amp;quot;&lt;br /&gt;
 loop for &amp;quot;('spr_collisions'-1)&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Key robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_keys&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;num_keys&amp;quot; by 1'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_k_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_k_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_k_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_k_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_k_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_k_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_k_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_k_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 inc &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 '''dec &amp;quot;num_keys&amp;quot; by 1'''&lt;br /&gt;
 '''set &amp;quot;spr('keysprite&amp;amp;num_keys&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;keysprite&amp;amp;num_keys&amp;amp;&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Door robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_doors&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;num_doors&amp;quot; by 1'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_d_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_d_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_d_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_d_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_d_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_d_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_d_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_d_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;end&amp;quot;&lt;br /&gt;
 dec &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 '''dec &amp;quot;num_doors&amp;quot; by 1'''&lt;br /&gt;
 '''set &amp;quot;spr('doorsprite&amp;amp;num_doors&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;doorsprite&amp;amp;num_doors&amp;amp;&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 : &amp;quot;end&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
[[Sprite#E2.2|Back]]&lt;br /&gt;
==Example 2.3==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 '''set &amp;quot;bminx&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;bminy&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;bmaxx&amp;quot; to 80'''&lt;br /&gt;
 '''set &amp;quot;bmaxy&amp;quot; to 25'''&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to 83&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to 86&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;playerx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to &amp;quot;playery&amp;quot;'''&lt;br /&gt;
 '''restore &amp;quot;justentered&amp;quot; 1'''&lt;br /&gt;
 '''| &amp;quot;justentered&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;playersprite&amp;amp;_off&amp;quot; to 1'''&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''set &amp;quot;spr('keysprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1'''&lt;br /&gt;
 '''loop for &amp;quot;('num_keys'-1)&amp;quot;'''&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''set &amp;quot;spr('doorsprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1'''&lt;br /&gt;
 '''loop for &amp;quot;('num_doors'-1)&amp;quot;'''&lt;br /&gt;
 set &amp;quot;num_keys&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;num_doors&amp;quot; to 0&lt;br /&gt;
 '''lockscroll'''&lt;br /&gt;
 '''set &amp;quot;player_x&amp;quot; to &amp;quot;local2&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;player_y&amp;quot; to &amp;quot;local3&amp;quot;'''&lt;br /&gt;
 '''put player at 0 0'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ''': &amp;quot;edge0&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;player_x&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to &amp;quot;('bmaxy'-'spr_p_h')&amp;quot;'''&lt;br /&gt;
 '''put player at 0 0'''&lt;br /&gt;
 '''move player NORTH'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ''': &amp;quot;edge1&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;player_x&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to &amp;quot;bminy&amp;quot;'''&lt;br /&gt;
 '''put player at &amp;quot;('board_w'-1)&amp;quot; &amp;quot;('board_h'-1)&amp;quot;'''&lt;br /&gt;
 '''move player SOUTH'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ''': &amp;quot;edge2&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;('bmaxx'-'spr_p_w')&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to &amp;quot;player_y&amp;quot;'''&lt;br /&gt;
 '''put player at 0 0'''&lt;br /&gt;
 '''move player WEST'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ''': &amp;quot;edge3&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;bminx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local3&amp;quot; to &amp;quot;player_y&amp;quot;'''&lt;br /&gt;
 '''put player at &amp;quot;('board_w'-1)&amp;quot; &amp;quot;('board_h'-1)&amp;quot;'''&lt;br /&gt;
 '''move player EAST'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 &amp;lt;s&amp;gt;set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&amp;lt;/s&amp;gt;&lt;br /&gt;
 &amp;lt;s&amp;gt;set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&amp;lt;/s&amp;gt;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 set &amp;quot;playersprite&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 . &amp;quot;&amp;amp;spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 '''restore &amp;quot;justentered&amp;quot; 1'''&lt;br /&gt;
 '''| &amp;quot;justentered&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_p_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_p_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_p_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_p_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_p_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_p_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_p_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_p_ch&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 0'''&lt;br /&gt;
 if '''&amp;quot;player_y&amp;quot;''' &amp;lt;= '''&amp;quot;bminy&amp;quot;''' then '''&amp;quot;edgecollide&amp;quot;'''&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec '''&amp;quot;player_y&amp;quot;''' by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 1'''&lt;br /&gt;
 if '''&amp;quot;player_y&amp;quot;''' &amp;gt;= &amp;quot;(''''bmaxy''''-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then '''&amp;quot;edgecollide&amp;quot;'''&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc '''&amp;quot;player_y&amp;quot;''' by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 2'''&lt;br /&gt;
 if '''&amp;quot;player_x&amp;quot;''' &amp;lt;= '''&amp;quot;bminx&amp;quot;''' then '''&amp;quot;edgecollide&amp;quot;'''&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec '''&amp;quot;player_x&amp;quot;''' by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 3'''&lt;br /&gt;
 if '''&amp;quot;player_x&amp;quot;''' &amp;gt;= &amp;quot;(''''bmaxx''''-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then '''&amp;quot;edgecollide&amp;quot;'''&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc '''&amp;quot;player_x&amp;quot;''' by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at '''&amp;quot;player_x&amp;quot;''' '''&amp;quot;player_y&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;collision&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 goto &amp;quot;#collide('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot;&lt;br /&gt;
 send &amp;quot;spr('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot; to &amp;quot;touch&amp;quot;&lt;br /&gt;
 loop for &amp;quot;('spr_collisions'-1)&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ''': &amp;quot;edgecollide&amp;quot;'''&lt;br /&gt;
 '''send &amp;quot;global&amp;quot; to &amp;quot;edge&amp;amp;spr('local')_lastmove&amp;amp;&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Key robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 '''restore &amp;quot;justentered&amp;quot; 1'''&lt;br /&gt;
 '''| &amp;quot;justentered&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_keys&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_k_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_k_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_k_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_k_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_k_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_k_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_k_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_k_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 inc &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;num_keys&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;keysprite&amp;amp;num_keys&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Door robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 '''restore &amp;quot;justentered&amp;quot; 1'''&lt;br /&gt;
 '''| &amp;quot;justentered&amp;quot;'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_doors&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_d_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_d_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_d_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_d_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_d_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_d_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_d_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_d_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;end&amp;quot;&lt;br /&gt;
 dec &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;num_doors&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;doorsprite&amp;amp;num_doors&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 : &amp;quot;end&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
[[Sprite#E2.3|Back]]&lt;br /&gt;
&lt;br /&gt;
==Example 2.4==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 set &amp;quot;bminx&amp;quot; to '''1'''&lt;br /&gt;
 set &amp;quot;bminy&amp;quot; to '''1'''&lt;br /&gt;
 set &amp;quot;bmaxx&amp;quot; to '''81'''&lt;br /&gt;
 set &amp;quot;bmaxy&amp;quot; to '''26'''&lt;br /&gt;
 '''set &amp;quot;vw&amp;quot; to 80'''&lt;br /&gt;
 '''set &amp;quot;vh&amp;quot; to 25'''&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to '''0'''&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to '''3'''&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to '''6'''&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 '''put &amp;quot;@sprites.mzm&amp;quot; Image_file p02 at 0 0'''&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;playerx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;playery&amp;quot;&lt;br /&gt;
 '''set &amp;quot;local4&amp;quot; to &amp;quot;scrolledx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;scrolledy&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;Uberleet expression hack method:&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;local4\&amp;quot; to \&amp;quot;(('scrolledx'&amp;lt;'bminx'*('bminx'-'scrolledx'))+('scrolledx'+'vw'&amp;gt;'bmaxx'*('bmaxx'-'vw'-'scrolledx'))+'scrolledx')\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;local5\&amp;quot; to \&amp;quot;(('scrolledy'&amp;lt;'bminy'*('bminy'-'scrolledy'))+('scrolledy'+'vh'&amp;gt;'bmaxy'*('bmaxy'-'vh'-'scrolledy'))+'scrolledy')\&amp;quot;&amp;quot;'''&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;playersprite&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_keys'-1)&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_doors'-1)&amp;quot;&lt;br /&gt;
 set &amp;quot;num_keys&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;num_doors&amp;quot; to 0&lt;br /&gt;
 lockscroll&lt;br /&gt;
 '''scrollview position &amp;quot;local4&amp;quot; &amp;quot;local5&amp;quot;'''&lt;br /&gt;
 set &amp;quot;player_x&amp;quot; to &amp;quot;local2&amp;quot;&lt;br /&gt;
 set &amp;quot;player_y&amp;quot; to &amp;quot;local3&amp;quot;&lt;br /&gt;
 put player at 0 0&lt;br /&gt;
 ''': &amp;quot;playerloop&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;player_x&amp;quot; &amp;lt; &amp;quot;('bminx'+'bmaxx'/2)&amp;quot; then &amp;quot;#playerleft&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;player_x&amp;quot; &amp;gt; &amp;quot;('bminx'+'bmaxx'/2)&amp;quot; then &amp;quot;#playerright&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;player_y&amp;quot; &amp;lt; &amp;quot;('bminy'+'bmaxy'/2)&amp;quot; then &amp;quot;#playerup&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;player_y&amp;quot; &amp;gt; &amp;quot;('bminy'+'bmaxy'/2)&amp;quot; then &amp;quot;#playerdown&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;Uberleet expression hack method:&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;put player at \&amp;quot;('bminx'+'bmaxx'/2&amp;lt;'player_x'*('board_w'-1))\&amp;quot; \&amp;quot;('bminy'+'bmaxy'/2&amp;lt;'player_y'*('board_h'-1))\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''wait for 1'''&lt;br /&gt;
 '''goto &amp;quot;playerloop&amp;quot;'''&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;edge0&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;player_x&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;('bmaxy'-'spr_p_h')&amp;quot;&lt;br /&gt;
 '''set &amp;quot;local4&amp;quot; to &amp;quot;scrolledx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;('bmaxy'-'vh')&amp;quot;'''&lt;br /&gt;
 &amp;lt;s&amp;gt;put player at 0 0&amp;lt;/s&amp;gt;&lt;br /&gt;
 move player NORTH&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;edge1&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;player_x&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;bminy&amp;quot;&lt;br /&gt;
 '''set &amp;quot;local4&amp;quot; to &amp;quot;scrolledx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;bminy&amp;quot;'''&lt;br /&gt;
 &amp;lt;s&amp;gt;put player at &amp;quot;('board_w'-1)&amp;quot; &amp;quot;('board_h'-1)&amp;quot;&amp;lt;/s&amp;gt;&lt;br /&gt;
 move player SOUTH&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;edge2&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;('bmaxx'-'spr_p_w')&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;player_y&amp;quot;&lt;br /&gt;
 '''set &amp;quot;local4&amp;quot; to &amp;quot;('bmaxx'-'vw')&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;scrolledy&amp;quot;'''&lt;br /&gt;
 &amp;lt;s&amp;gt;put player at 0 0&amp;lt;/s&amp;gt;&lt;br /&gt;
 move player WEST&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;edge3&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;bminx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;player_y&amp;quot;&lt;br /&gt;
 '''set &amp;quot;local4&amp;quot; to &amp;quot;bminx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;scrolledy&amp;quot;'''&lt;br /&gt;
 &amp;lt;s&amp;gt;put player at &amp;quot;('board_w'-1)&amp;quot; &amp;quot;('board_h'-1)&amp;quot;&amp;lt;/s&amp;gt;&lt;br /&gt;
 move player EAST&lt;br /&gt;
 end&lt;br /&gt;
 ''': &amp;quot;#playerleft&amp;quot;'''&lt;br /&gt;
 '''put player at 0 &amp;quot;playery&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#playerright&amp;quot;'''&lt;br /&gt;
 '''put player at &amp;quot;('board_w'-1)&amp;quot; &amp;quot;playery&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#playerup&amp;quot;'''&lt;br /&gt;
 '''put player at &amp;quot;playerx&amp;quot; 0'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#playerdown&amp;quot;'''&lt;br /&gt;
 '''put player at &amp;quot;playerx&amp;quot; &amp;quot;('board_h'-1)&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 set &amp;quot;playersprite&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 . &amp;quot;&amp;amp;spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_p_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_p_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_p_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_p_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_p_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_p_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_p_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_p_ch&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 0&lt;br /&gt;
 if &amp;quot;player_y&amp;quot; &amp;lt;= &amp;quot;bminy&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;player_y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 1&lt;br /&gt;
 if &amp;quot;player_y&amp;quot; &amp;gt;= &amp;quot;('bmaxy'-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;player_y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 2&lt;br /&gt;
 if &amp;quot;player_x&amp;quot; &amp;lt;= &amp;quot;bminx&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;player_x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 3&lt;br /&gt;
 if &amp;quot;player_x&amp;quot; &amp;gt;= &amp;quot;('bmaxx'-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;player_x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;player_x&amp;quot; &amp;quot;player_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 '''if &amp;quot;scrolledx&amp;quot; &amp;lt; &amp;quot;bminx&amp;quot; then &amp;quot;#fixleft&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;scrolledx&amp;quot; &amp;gt; &amp;quot;('bmaxx'-'vw')&amp;quot; then &amp;quot;#fixright&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;scrolledy&amp;quot; &amp;lt; &amp;quot;bminy&amp;quot; then &amp;quot;#fixup&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;scrolledy&amp;quot; &amp;gt; &amp;quot;('bmaxy'-'vh')&amp;quot; then &amp;quot;#fixdown&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;Uberleet expression hack method:&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;local2\&amp;quot; to \&amp;quot;(('scrolledx'&amp;lt;'bminx'*('bminx'-'scrolledx'))+('scrolledx'+'vw'&amp;gt;'bmaxx'*('bmaxx'-'vw'-'scrolledx'))+'scrolledx')\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;local3\&amp;quot; to \&amp;quot;(('scrolledy'&amp;lt;'bminy'*('bminy'-'scrolledy'))+('scrolledy'+'vh'&amp;gt;'bmaxy'*('bmaxy'-'vh'-'scrolledy'))+'scrolledy')\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;scrollview position \&amp;quot;local2\&amp;quot; \&amp;quot;local3\&amp;quot;&amp;quot;'''&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;collision&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 goto &amp;quot;#collide('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot;&lt;br /&gt;
 send &amp;quot;spr('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot; to &amp;quot;touch&amp;quot;&lt;br /&gt;
 loop for &amp;quot;('spr_collisions'-1)&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 send &amp;quot;global&amp;quot; to &amp;quot;edge&amp;amp;spr('local')_lastmove&amp;amp;&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ''': &amp;quot;#fixleft&amp;quot;'''&lt;br /&gt;
 '''scrollview position &amp;quot;bminx&amp;quot; &amp;quot;scrolledy&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#fixright&amp;quot;'''&lt;br /&gt;
 '''scrollview position &amp;quot;('bmaxx'-'vw')&amp;quot; &amp;quot;scrolledy&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#fixup&amp;quot;'''&lt;br /&gt;
 '''scrollview position &amp;quot;scrolledx&amp;quot; &amp;quot;bminy&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#fixdown&amp;quot;'''&lt;br /&gt;
 '''scrollview position &amp;quot;scrolledx&amp;quot; &amp;quot;('bmaxy'-'vh')&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Key robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_keys&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_k_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_k_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_k_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_k_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_k_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_k_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_k_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_k_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 inc &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;num_keys&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;keysprite&amp;amp;num_keys&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Door robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_doors&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1'''&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_d_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_d_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_d_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_d_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_d_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_d_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_d_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_d_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;end&amp;quot;&lt;br /&gt;
 dec &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;num_doors&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;doorsprite&amp;amp;num_doors&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 : &amp;quot;end&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
[[Sprite#E2.4|Back]]&lt;br /&gt;
&lt;br /&gt;
==Example 3.1==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 '''set &amp;quot;commands&amp;quot; to 4096'''&lt;br /&gt;
 '''set &amp;quot;maxhealth&amp;quot; to 100'''&lt;br /&gt;
 '''set maxhealth to &amp;quot;maxhealth&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;enter_menu&amp;quot; to 0'''&lt;br /&gt;
 set &amp;quot;bminx&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bminy&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bmaxx&amp;quot; to 81&lt;br /&gt;
 set &amp;quot;bmaxy&amp;quot; to 26&lt;br /&gt;
 set &amp;quot;vw&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;vh&amp;quot; to 25&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to 6&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 '''set &amp;quot;lyr_s_x&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;lyr_s_y&amp;quot; to 3'''&lt;br /&gt;
 '''set &amp;quot;lyr_s_w&amp;quot; to 50'''&lt;br /&gt;
 '''set &amp;quot;lyr_s_h&amp;quot; to 2'''&lt;br /&gt;
 '''set &amp;quot;lyr_sh_x&amp;quot; to 10'''&lt;br /&gt;
 '''set &amp;quot;lyr_sh_y&amp;quot; to 3'''&lt;br /&gt;
 '''set &amp;quot;lyr_sh_w&amp;quot; to 25'''&lt;br /&gt;
 '''set &amp;quot;lyr_sh_h&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;lyr_sa_x&amp;quot; to 43'''&lt;br /&gt;
 '''set &amp;quot;lyr_sa_y&amp;quot; to 3'''&lt;br /&gt;
 '''set &amp;quot;lyr_sa_w&amp;quot; to 5'''&lt;br /&gt;
 '''set &amp;quot;lyr_sa_h&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;lyr_sk_x&amp;quot; to 8'''&lt;br /&gt;
 '''set &amp;quot;lyr_sk_y&amp;quot; to 4'''&lt;br /&gt;
 '''set &amp;quot;lyr_sk_w&amp;quot; to 40'''&lt;br /&gt;
 '''set &amp;quot;lyr_sk_h&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;spr_sh_x&amp;quot; to 8'''&lt;br /&gt;
 '''set &amp;quot;spr_sh_y&amp;quot; to 0'''&lt;br /&gt;
 put &amp;quot;@sprites.mzm&amp;quot; Image_file p02 at 0 0&lt;br /&gt;
 '''put &amp;quot;@statusbar.mzm&amp;quot; Image_file p02 at &amp;quot;lyr_s_x&amp;quot; &amp;quot;lyr_s_y&amp;quot;'''&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;playerx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;playery&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;scrolledx&amp;quot;&lt;br /&gt;
 set &amp;quot;local5&amp;quot; to &amp;quot;scrolledy&amp;quot;&lt;br /&gt;
 . &amp;quot;Uberleet expression hack method:&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local4\&amp;quot; to \&amp;quot;(('scrolledx'&amp;lt;'bminx'*('bminx'-'scrolledx'))+('scrolledx'+'vw'&amp;gt;'bmaxx'*('bmaxx'-'vw'-'scrolledx'))+'scrolledx')\&amp;quot;&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local5\&amp;quot; to \&amp;quot;(('scrolledy'&amp;lt;'bminy'*('bminy'-'scrolledy'))+('scrolledy'+'vh'&amp;gt;'bmaxy'*('bmaxy'-'vh'-'scrolledy'))+'scrolledy')\&amp;quot;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;playersprite&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;statusbar&amp;amp;_off&amp;quot; to 1'''&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_keys'-1)&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_doors'-1)&amp;quot;&lt;br /&gt;
 set &amp;quot;num_keys&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;num_doors&amp;quot; to 0&lt;br /&gt;
 lockscroll&lt;br /&gt;
 scrollview position &amp;quot;local4&amp;quot; &amp;quot;local5&amp;quot;&lt;br /&gt;
 set &amp;quot;player_x&amp;quot; to &amp;quot;local2&amp;quot;&lt;br /&gt;
 set &amp;quot;player_y&amp;quot; to &amp;quot;local3&amp;quot;&lt;br /&gt;
 put player at 0 0&lt;br /&gt;
 : &amp;quot;playerloop&amp;quot;&lt;br /&gt;
 . &amp;quot;... Lines after this point have not changed.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;The player, key, and door robots have not changed.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Status bar robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;('vw'-'lyr_s_w'/2)&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 set &amp;quot;statusbar&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_static&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;lyr_s_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;lyr_s_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;lyr_s_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;lyr_s_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to 500&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to 0&lt;br /&gt;
 restore &amp;quot;keyenter&amp;quot; 255&lt;br /&gt;
 goto &amp;quot;keyenter&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 put &amp;quot;@statusbar.mzm&amp;quot; Image_file p02 at &amp;quot;lyr_s_x&amp;quot; &amp;quot;lyr_s_y&amp;quot;&lt;br /&gt;
 goto &amp;quot;#dohealth&amp;quot;&lt;br /&gt;
 goto &amp;quot;#doammo&amp;quot;&lt;br /&gt;
 goto &amp;quot;#dokeys&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#dohealth&amp;quot;&lt;br /&gt;
 copy block &amp;quot;#&amp;amp;spr_sh_x&amp;amp;&amp;quot; &amp;quot;#&amp;amp;spr_sh_y&amp;amp;&amp;quot; for &amp;quot;('health'*'lyr_sh_w'/'maxhealth')&amp;quot; &amp;quot;lyr_sh_h&amp;quot; to &amp;quot;#&amp;amp;lyr_sh_x&amp;amp;&amp;quot; &amp;quot;#&amp;amp;lyr_sh_y&amp;amp;&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#doammo&amp;quot;&lt;br /&gt;
 . &amp;quot;Uberleet expression hack for capping ammo at 99999.&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;ammo\&amp;quot; to \&amp;quot;('ammo'&amp;gt;99999*(99999-'ammo')+'ammo')\&amp;quot;&amp;quot;&lt;br /&gt;
 set &amp;quot;$ammo&amp;quot; to &amp;quot;&amp;amp;ammo&amp;amp;&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;vch('lyr_sa_x'+'loopcount'),('lyr_sa_y')&amp;quot; to &amp;quot;$ammo.&amp;amp;loopcount&amp;amp;&amp;quot;&lt;br /&gt;
 loop for &amp;quot;('$ammo.length'-1)&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#dokeys&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;local5&amp;quot; to 0&lt;br /&gt;
 : &amp;quot;keyloop&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;keynext&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 if &amp;quot;local5&amp;quot; &amp;gt;= &amp;quot;lyr_sk_w&amp;quot; then &amp;quot;#return&amp;quot;&lt;br /&gt;
 set &amp;quot;vch('lyr_sk_x'+'local5'),('lyr_sk_y')&amp;quot; to 12&lt;br /&gt;
 set &amp;quot;vco('lyr_sk_x'+'local5'),('lyr_sk_y')&amp;quot; to &amp;quot;local4&amp;quot;&lt;br /&gt;
 inc &amp;quot;local5&amp;quot; by 1&lt;br /&gt;
 loop for &amp;quot;('key_&amp;amp;local4&amp;amp;'-1)&amp;quot;&lt;br /&gt;
 : &amp;quot;keynext&amp;quot;&lt;br /&gt;
 inc &amp;quot;local4&amp;quot; by 1&lt;br /&gt;
 if &amp;quot;local4&amp;quot; &amp;lt; 256 then &amp;quot;keyloop&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to 0&lt;br /&gt;
 if &amp;quot;('spr&amp;amp;playersprite&amp;amp;_y'-'scrolledy')&amp;quot; &amp;gt;= &amp;quot;('vh'-'spr_p_h'/2)&amp;quot; then &amp;quot;drawnext&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;('vh'-'lyr_s_h')&amp;quot;&lt;br /&gt;
 : &amp;quot;drawnext&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;keyenter&amp;quot;&lt;br /&gt;
 zap &amp;quot;keyenter&amp;quot; 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;keyenter&amp;quot;&lt;br /&gt;
 restore &amp;quot;keyenter&amp;quot; 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
[[Sprite#E3.1|Back]]&lt;br /&gt;
==Example 3.2==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 set &amp;quot;commands&amp;quot; to 4096&lt;br /&gt;
 set &amp;quot;maxhealth&amp;quot; to 100&lt;br /&gt;
 set maxhealth to &amp;quot;maxhealth&amp;quot;&lt;br /&gt;
 set &amp;quot;enter_menu&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;bminx&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bminy&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bmaxx&amp;quot; to 81&lt;br /&gt;
 set &amp;quot;bmaxy&amp;quot; to 26&lt;br /&gt;
 set &amp;quot;vw&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;vh&amp;quot; to 25&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_p_x&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_p_cy&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_p_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_p_ch&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_d_x&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_w&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_d_cw&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_d_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_x&amp;quot; to 6&lt;br /&gt;
 set &amp;quot;spr_k_y&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_w&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_h&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;spr_k_cx&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cy&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr_k_cw&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;spr_k_ch&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;lyr_s_x&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;lyr_s_y&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;lyr_s_w&amp;quot; to 50&lt;br /&gt;
 set &amp;quot;lyr_s_h&amp;quot; to 2&lt;br /&gt;
 set &amp;quot;lyr_sh_x&amp;quot; to 10&lt;br /&gt;
 set &amp;quot;lyr_sh_y&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;lyr_sh_w&amp;quot; to 25&lt;br /&gt;
 set &amp;quot;lyr_sh_h&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;lyr_sa_x&amp;quot; to 43&lt;br /&gt;
 set &amp;quot;lyr_sa_y&amp;quot; to 3&lt;br /&gt;
 set &amp;quot;lyr_sa_w&amp;quot; to 5&lt;br /&gt;
 set &amp;quot;lyr_sa_h&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;lyr_sk_x&amp;quot; to 8&lt;br /&gt;
 set &amp;quot;lyr_sk_y&amp;quot; to 4&lt;br /&gt;
 set &amp;quot;lyr_sk_w&amp;quot; to 40&lt;br /&gt;
 set &amp;quot;lyr_sk_h&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr_sh_x&amp;quot; to 8&lt;br /&gt;
 set &amp;quot;spr_sh_y&amp;quot; to 0&lt;br /&gt;
 '''set &amp;quot;spr_pb_x&amp;quot; to 8'''&lt;br /&gt;
 '''set &amp;quot;spr_pb_y&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;spr_pb_w&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;spr_pb_h&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;lyr_pb_x&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;lyr_pb_y&amp;quot; to 5'''&lt;br /&gt;
 '''set &amp;quot;lyr_pb_w&amp;quot; to &amp;quot;('bmaxx'-'bminx')&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;lyr_pb_h&amp;quot; to &amp;quot;('bmaxy'-'bminy')&amp;quot;'''&lt;br /&gt;
 put &amp;quot;@sprites.mzm&amp;quot; Image_file p02 at 0 0&lt;br /&gt;
 put &amp;quot;@statusbar.mzm&amp;quot; Image_file p02 at &amp;quot;lyr_s_x&amp;quot; &amp;quot;lyr_s_y&amp;quot;&lt;br /&gt;
 '''copy block at &amp;quot;#&amp;amp;lyr_pb_x&amp;amp;&amp;quot; &amp;quot;#&amp;amp;lyr_pb_y&amp;amp;&amp;quot; for &amp;quot;lyr_pb_w&amp;quot; &amp;quot;lyr_pb_h&amp;quot; to &amp;quot;@blank.mzm&amp;quot; 1'''&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;playerx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;playery&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;scrolledx&amp;quot;&lt;br /&gt;
 set &amp;quot;local5&amp;quot; to &amp;quot;scrolledy&amp;quot;&lt;br /&gt;
 . &amp;quot;Uberleet expression hack method:&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local4\&amp;quot; to \&amp;quot;(('scrolledx'&amp;lt;'bminx'*('bminx'-'scrolledx'))+('scrolledx'+'vw'&amp;gt;'bmaxx'*('bmaxx'-'vw'-'scrolledx'))+'scrolledx')\&amp;quot;&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local5\&amp;quot; to \&amp;quot;(('scrolledy'&amp;lt;'bminy'*('bminy'-'scrolledy'))+('scrolledy'+'vh'&amp;gt;'bmaxy'*('bmaxy'-'vh'-'scrolledy'))+'scrolledy')\&amp;quot;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;playersprite&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;statusbar&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;playerbullets&amp;amp;_off&amp;quot; to 1'''&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_keys'-1)&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;loopcount&amp;amp;')_off&amp;quot; to 1&lt;br /&gt;
 loop for &amp;quot;('num_doors'-1)&amp;quot;&lt;br /&gt;
 set &amp;quot;num_keys&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;num_doors&amp;quot; to 0&lt;br /&gt;
 lockscroll&lt;br /&gt;
 scrollview position &amp;quot;local4&amp;quot; &amp;quot;local5&amp;quot;&lt;br /&gt;
 set &amp;quot;player_x&amp;quot; to &amp;quot;local2&amp;quot;&lt;br /&gt;
 set &amp;quot;player_y&amp;quot; to &amp;quot;local3&amp;quot;&lt;br /&gt;
 put player at 0 0&lt;br /&gt;
 : &amp;quot;playerloop&amp;quot;&lt;br /&gt;
 . &amp;quot;... Lines after this point have not changed.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;The player, status bar, key, and door robots have not changed.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player bullet robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;playerbullets&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 set &amp;quot;pbullets&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;pbullets_add&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;pbullets_remove&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;lyr_pb_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;lyr_pb_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;lyr_pb_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;lyr_pb_h&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; &amp;quot;bminx&amp;quot; &amp;quot;bminy&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 goto &amp;quot;#add&amp;quot;&lt;br /&gt;
 goto &amp;quot;#move&amp;quot;&lt;br /&gt;
 goto &amp;quot;#check&amp;quot;&lt;br /&gt;
 goto &amp;quot;#remove&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#add&amp;quot;&lt;br /&gt;
 . &amp;quot;TODO&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#move&amp;quot;&lt;br /&gt;
 . &amp;quot;TODO&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#check&amp;quot;&lt;br /&gt;
 . &amp;quot;TODO&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#remove&amp;quot;&lt;br /&gt;
 . &amp;quot;TODO&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 . &amp;quot;TODO&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
[[Sprite#E3.2|Back]]&lt;br /&gt;
&lt;br /&gt;
==Example 3.3==&lt;br /&gt;
 . &amp;quot;The global, player, status bar, key, and door robots have not changed.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player bullet robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;playerbullets&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 set &amp;quot;pbullets&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;pbullets_add&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;pbullets_remove&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;lyr_pb_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;lyr_pb_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;lyr_pb_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;lyr_pb_h&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; &amp;quot;bminx&amp;quot; &amp;quot;bminy&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 '''if &amp;quot;pbullets_add&amp;quot; &amp;gt; 0 then &amp;quot;#add&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;pbullets&amp;quot; &amp;gt; 0 then &amp;quot;#move&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;pbullets_remove&amp;quot; &amp;gt; 0 then &amp;quot;#remove&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;pbullets&amp;quot; &amp;gt; 0 then &amp;quot;#check&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;pbullets_remove&amp;quot; &amp;gt; 0 then &amp;quot;#remove&amp;quot;'''&lt;br /&gt;
 '''put &amp;quot;@blank.mzm&amp;quot; Image_file p02 at &amp;quot;lyr_pb_x&amp;quot; &amp;quot;lyr_pb_y&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;pbullets&amp;quot; &amp;gt; 0 then &amp;quot;#draw&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to -1'''&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#add&amp;quot;&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;pbullets_add&amp;amp;loopcount&amp;amp;&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_x&amp;quot; to &amp;quot;('spr&amp;amp;local2&amp;amp;_width'/2+'spr&amp;amp;local2&amp;amp;_x'-'bminx')&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_y&amp;quot; to &amp;quot;('spr&amp;amp;local2&amp;amp;_height'/2+'spr&amp;amp;local2&amp;amp;_y'-'bminy')&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;Uberleet expression hack version&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx\&amp;quot; to \&amp;quot;('spr&amp;amp;local2&amp;amp;_lastmove'%2*2-1*('spr&amp;amp;local2&amp;amp;_lastmove'/2))\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''. &amp;quot;set \&amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy\&amp;quot; to \&amp;quot;('spr&amp;amp;local2&amp;amp;_lastmove'%2*2-1*('spr&amp;amp;local2&amp;amp;_lastmove'/2-1*-1))\&amp;quot;&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#add('spr&amp;amp;local2&amp;amp;_lastmove')&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;pbullets&amp;quot; by 1'''&lt;br /&gt;
 '''loop for &amp;quot;('pbullets_add'-1)&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets_add&amp;quot; to 0'''&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#move&amp;quot;&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''inc &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_x&amp;quot; by &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_vx&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_y&amp;quot; by &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_vy&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;(('pbullets&amp;amp;loopcount&amp;amp;_x'&amp;gt;=0)a('pbullets&amp;amp;loopcount&amp;amp;_y'&amp;gt;=0)a('pbullets&amp;amp;loopcount&amp;amp;_x'&amp;lt;'lyr_pb_w')a('pbullets&amp;amp;loopcount&amp;amp;_y'&amp;lt;'lyr_pb_h'))&amp;quot; = 1 then &amp;quot;movenext&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets_remove&amp;amp;pbullets_remove&amp;amp;&amp;quot; to &amp;quot;loopcount&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;pbullets_remove&amp;quot; by 1'''&lt;br /&gt;
 ''': &amp;quot;movenext&amp;quot;'''&lt;br /&gt;
 '''loop for &amp;quot;('pbullets'-1)&amp;quot;'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 : &amp;quot;#check&amp;quot;&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_x&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;pbullets&amp;amp;loopcount&amp;amp;_y&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_pb_w&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_pb_h&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;spr&amp;amp;local&amp;amp;_clist&amp;quot; to 1'''&lt;br /&gt;
 '''if &amp;quot;spr_collisions&amp;quot; &amp;lt;= 0 then &amp;quot;checknext&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to 0'''&lt;br /&gt;
 ''': &amp;quot;collide&amp;quot;'''&lt;br /&gt;
 '''if &amp;quot;spr_clist&amp;amp;local2&amp;amp;&amp;quot; = &amp;quot;playersprite&amp;quot; then &amp;quot;checknext&amp;quot;'''&lt;br /&gt;
 '''send &amp;quot;spr('spr_clist&amp;amp;local2&amp;amp;')&amp;quot; to &amp;quot;playershot&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;local2&amp;quot; by 1'''&lt;br /&gt;
 '''if &amp;quot;local2&amp;quot; &amp;lt; &amp;quot;spr_collisions&amp;quot; then &amp;quot;collide&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets_remove&amp;amp;pbullets_remove&amp;amp;&amp;quot; to &amp;quot;loopcount&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;pbullets_remove&amp;quot; by 1'''&lt;br /&gt;
 ''': &amp;quot;checknext&amp;quot;'''&lt;br /&gt;
 '''loop for &amp;quot;('pbullets'-1)&amp;quot;'''&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#remove&amp;quot;&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''dec &amp;quot;pbullets&amp;quot; by 1'''&lt;br /&gt;
 '''set &amp;quot;local2&amp;quot; to &amp;quot;pbullets_remove('pbullets_remove'-'loopcount'-1)&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;local2&amp;amp;_x&amp;quot; to &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_x&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;local2&amp;amp;_y&amp;quot; to &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_y&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;local2&amp;amp;_vx&amp;quot; to &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;local2&amp;amp;_vy&amp;quot; to &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy&amp;quot;'''&lt;br /&gt;
 '''loop for &amp;quot;('pbullets_remove'-1)&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets_remove&amp;quot; to 0'''&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 '''loop start'''&lt;br /&gt;
 '''copy block at &amp;quot;#&amp;amp;spr_pb_x&amp;amp;&amp;quot; &amp;quot;#&amp;amp;spr_pb_y&amp;amp;&amp;quot; for &amp;quot;spr_pb_w&amp;quot; &amp;quot;spr_pb_h&amp;quot; to &amp;quot;#('lyr_pb_x'+'pbullets&amp;amp;loopcount&amp;amp;_x')&amp;quot; &amp;quot;#('lyr_pb_y'+'pbullets&amp;amp;loopcount&amp;amp;_y')&amp;quot;'''&lt;br /&gt;
 '''loop for &amp;quot;('pbullets'-1)&amp;quot;'''&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ''': &amp;quot;#add0&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy&amp;quot; to -1'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#add1&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx&amp;quot; to 0'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy&amp;quot; to 1'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#add2&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx&amp;quot; to -1'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy&amp;quot; to 0'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ''': &amp;quot;#add3&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vx&amp;quot; to 1'''&lt;br /&gt;
 '''set &amp;quot;pbullets&amp;amp;pbullets&amp;amp;_vy&amp;quot; to 0'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
[[Sprite#E3.3|Back]]&lt;br /&gt;
==Example 3.4==&lt;br /&gt;
 . &amp;quot;Global robot&amp;quot;&lt;br /&gt;
 set &amp;quot;commands&amp;quot; to 4096&lt;br /&gt;
 set &amp;quot;maxhealth&amp;quot; to 100&lt;br /&gt;
 set maxhealth to &amp;quot;maxhealth&amp;quot;&lt;br /&gt;
 '''set &amp;quot;ammo&amp;quot; to 10000'''&lt;br /&gt;
 set &amp;quot;enter_menu&amp;quot; to 0&lt;br /&gt;
 set &amp;quot;bminx&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bminy&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;bmaxx&amp;quot; to 81&lt;br /&gt;
 set &amp;quot;bmaxy&amp;quot; to 26&lt;br /&gt;
 set &amp;quot;vw&amp;quot; to 80&lt;br /&gt;
 set &amp;quot;vh&amp;quot; to 25&lt;br /&gt;
 set &amp;quot;spr_yorder&amp;quot; to 1&lt;br /&gt;
 . &amp;quot;... And all the rest.&amp;quot;&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Player robot&amp;quot;&lt;br /&gt;
 lockplayer&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 set &amp;quot;playersprite&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 . &amp;quot;&amp;amp;spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_p_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_p_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_p_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_p_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_p_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_p_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_p_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_p_ch&amp;quot;&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 : &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 if uppressed then &amp;quot;#up&amp;quot;&lt;br /&gt;
 if leftpressed then &amp;quot;#left&amp;quot;&lt;br /&gt;
 if rightpressed then &amp;quot;#right&amp;quot;&lt;br /&gt;
 if downpressed then &amp;quot;#down&amp;quot;&lt;br /&gt;
 wait for 1&lt;br /&gt;
 goto &amp;quot;drawloop&amp;quot;&lt;br /&gt;
 : &amp;quot;#up&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 0&lt;br /&gt;
 '''if spacepressed then &amp;quot;shoot&amp;quot;'''&lt;br /&gt;
 if &amp;quot;player_y&amp;quot; &amp;lt;= &amp;quot;bminy&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 -1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;player_y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#down&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 1&lt;br /&gt;
 '''if spacepressed then &amp;quot;shoot&amp;quot;'''&lt;br /&gt;
 if &amp;quot;player_y&amp;quot; &amp;gt;= &amp;quot;('bmaxy'-'spr&amp;amp;local&amp;amp;_height')&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 0 1 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;player_y&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#left&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 2&lt;br /&gt;
 '''if spacepressed then &amp;quot;shoot&amp;quot;'''&lt;br /&gt;
 if &amp;quot;player_x&amp;quot; &amp;lt;= &amp;quot;bminx&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at -1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 dec &amp;quot;player_x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#right&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lastmove&amp;quot; to 3&lt;br /&gt;
 '''if spacepressed then &amp;quot;shoot&amp;quot;'''&lt;br /&gt;
 if &amp;quot;player_x&amp;quot; &amp;gt;= &amp;quot;('bmaxx'-'spr&amp;amp;local&amp;amp;_width')&amp;quot; then &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 if c?? Sprite_colliding &amp;quot;local&amp;quot; at 1 0 then &amp;quot;collision&amp;quot;&lt;br /&gt;
 inc &amp;quot;player_x&amp;quot; by 1&lt;br /&gt;
 goto &amp;quot;#draw&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#draw&amp;quot;&lt;br /&gt;
 put c?? Sprite &amp;quot;local&amp;quot; at &amp;quot;player_x&amp;quot; &amp;quot;player_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_setview&amp;quot; to 1&lt;br /&gt;
 if &amp;quot;scrolledx&amp;quot; &amp;lt; &amp;quot;bminx&amp;quot; then &amp;quot;#fixleft&amp;quot;&lt;br /&gt;
 if &amp;quot;scrolledx&amp;quot; &amp;gt; &amp;quot;('bmaxx'-'vw')&amp;quot; then &amp;quot;#fixright&amp;quot;&lt;br /&gt;
 if &amp;quot;scrolledy&amp;quot; &amp;lt; &amp;quot;bminy&amp;quot; then &amp;quot;#fixup&amp;quot;&lt;br /&gt;
 if &amp;quot;scrolledy&amp;quot; &amp;gt; &amp;quot;('bmaxy'-'vh')&amp;quot; then &amp;quot;#fixdown&amp;quot;&lt;br /&gt;
 . &amp;quot;Uberleet expression hack method:&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local2\&amp;quot; to \&amp;quot;(('scrolledx'&amp;lt;'bminx'*('bminx'-'scrolledx'))+('scrolledx'+'vw'&amp;gt;'bmaxx'*('bmaxx'-'vw'-'scrolledx'))+'scrolledx')\&amp;quot;&amp;quot;&lt;br /&gt;
 . &amp;quot;set \&amp;quot;local3\&amp;quot; to \&amp;quot;(('scrolledy'&amp;lt;'bminy'*('bminy'-'scrolledy'))+('scrolledy'+'vh'&amp;gt;'bmaxy'*('bmaxy'-'vh'-'scrolledy'))+'scrolledy')\&amp;quot;&amp;quot;&lt;br /&gt;
 . &amp;quot;scrollview position \&amp;quot;local2\&amp;quot; \&amp;quot;local3\&amp;quot;&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;collision&amp;quot;&lt;br /&gt;
 loop start&lt;br /&gt;
 goto &amp;quot;#collide('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot;&lt;br /&gt;
 send &amp;quot;spr('spr_clist&amp;amp;loopcount&amp;amp;')&amp;quot; to &amp;quot;touch&amp;quot;&lt;br /&gt;
 loop for &amp;quot;('spr_collisions'-1)&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;edgecollide&amp;quot;&lt;br /&gt;
 send &amp;quot;global&amp;quot; to &amp;quot;edge&amp;amp;spr('local')_lastmove&amp;amp;&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#fixleft&amp;quot;&lt;br /&gt;
 scrollview position &amp;quot;bminx&amp;quot; &amp;quot;scrolledy&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#fixright&amp;quot;&lt;br /&gt;
 scrollview position &amp;quot;('bmaxx'-'vw')&amp;quot; &amp;quot;scrolledy&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#fixup&amp;quot;&lt;br /&gt;
 scrollview position &amp;quot;scrolledx&amp;quot; &amp;quot;bminy&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 : &amp;quot;#fixdown&amp;quot;&lt;br /&gt;
 scrollview position &amp;quot;scrolledx&amp;quot; &amp;quot;('bmaxy'-'vh')&amp;quot;&lt;br /&gt;
 goto &amp;quot;#return&amp;quot;&lt;br /&gt;
 ''': &amp;quot;shoot&amp;quot;'''&lt;br /&gt;
 '''take 1 AMMOS else &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;pbullets_add&amp;amp;pbullets_add&amp;amp;&amp;quot; to &amp;quot;local&amp;quot;'''&lt;br /&gt;
 '''inc &amp;quot;pbullets_add&amp;quot; by 1'''&lt;br /&gt;
 '''goto &amp;quot;#return&amp;quot;'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Key robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_keys&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_k_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_k_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_k_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_k_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_k_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_k_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_k_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_k_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 inc &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_keys&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('keysprite&amp;amp;num_keys&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;keysprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;keysprite&amp;amp;num_keys&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 ''': &amp;quot;playershot&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;('local4'%16)&amp;quot;'''&lt;br /&gt;
 '''* &amp;quot;~&amp;amp;+local5&amp;amp;Ouch, you shot me!&amp;quot;'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 . &amp;quot;Door robot&amp;quot;&lt;br /&gt;
 set &amp;quot;local&amp;quot; to &amp;quot;robot_id&amp;quot;&lt;br /&gt;
 set &amp;quot;local2&amp;quot; to &amp;quot;thisx&amp;quot;&lt;br /&gt;
 set &amp;quot;local3&amp;quot; to &amp;quot;thisy&amp;quot;&lt;br /&gt;
 set &amp;quot;local4&amp;quot; to &amp;quot;this_color&amp;quot;&lt;br /&gt;
 gotoxy &amp;quot;local&amp;quot; 0&lt;br /&gt;
 . &amp;quot;@spr&amp;amp;local&amp;amp;&amp;quot;&lt;br /&gt;
 restore &amp;quot;justentered&amp;quot; 1&lt;br /&gt;
 | &amp;quot;justentered&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot; to &amp;quot;num_doors&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;local&amp;quot;&lt;br /&gt;
 inc &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_vlayer&amp;quot; to 1&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refx&amp;quot; to &amp;quot;spr_d_x&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_refy&amp;quot; to &amp;quot;spr_d_y&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_width&amp;quot; to &amp;quot;spr_d_w&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_height&amp;quot; to &amp;quot;spr_d_h&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cx&amp;quot; to &amp;quot;spr_d_cx&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cy&amp;quot; to &amp;quot;spr_d_cy&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cwidth&amp;quot; to &amp;quot;spr_d_cw&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_cheight&amp;quot; to &amp;quot;spr_d_ch&amp;quot;&lt;br /&gt;
 put &amp;quot;local4&amp;quot; Sprite &amp;quot;local&amp;quot; at &amp;quot;local2&amp;quot; &amp;quot;local3&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 : &amp;quot;touch&amp;quot;&lt;br /&gt;
 if &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; &amp;lt;= 0 then &amp;quot;end&amp;quot;&lt;br /&gt;
 dec &amp;quot;key_&amp;amp;local4&amp;amp;&amp;quot; by 1&lt;br /&gt;
 dec &amp;quot;num_doors&amp;quot; by 1&lt;br /&gt;
 set &amp;quot;spr('doorsprite&amp;amp;num_doors&amp;amp;')_lpos&amp;quot; to &amp;quot;spr&amp;amp;local&amp;amp;_lpos&amp;quot;&lt;br /&gt;
 set &amp;quot;doorsprite('spr&amp;amp;local&amp;amp;_lpos')&amp;quot; to &amp;quot;doorsprite&amp;amp;num_doors&amp;amp;&amp;quot;&lt;br /&gt;
 set &amp;quot;spr&amp;amp;local&amp;amp;_off&amp;quot; to 1&lt;br /&gt;
 die&lt;br /&gt;
 : &amp;quot;end&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 ''': &amp;quot;playershot&amp;quot;'''&lt;br /&gt;
 '''set &amp;quot;local5&amp;quot; to &amp;quot;('local4'%16)&amp;quot;'''&lt;br /&gt;
 '''* &amp;quot;~&amp;amp;+local5&amp;amp;Ouch, you shot me!&amp;quot;'''&lt;br /&gt;
 '''end'''&lt;br /&gt;
[[Sprite#E3.4|Back]]&lt;br /&gt;
[[Category:MegaZeux]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Luke_Drelick&amp;diff=5847</id>
		<title>Luke Drelick</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Luke_Drelick&amp;diff=5847"/>
		<updated>2008-04-29T09:18:59Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Luke Drelick''' (currently known as djtiesto) has been a controversial figure throughout [[MegaZeux]] history.  Since his days of [[troll|trolling]] on [[mWorld]] under various different pseudonyms (usually named after Garage artists, a trademark that made him easily identifiable), he was in fairly constant conflict with the community administration.  This came to a head about a year after the creation of [[DigitalMZX]] (during which time he used the handle SEGA), when he was &amp;quot;permanently&amp;quot; banned from the forums in September 2001 for repeated infractions against the ToS and a general feeling by the administration that he was only around to cause problems for his own enjoyment.  This led to complaints by many of his friends at the time, as well as some attempted ban-evasion and raids.&lt;br /&gt;
&lt;br /&gt;
In 2004, well after the furor had settled down, Drelick contacted the admins and dropped a hint that he wanted to be allowed back in, if it were considered acceptable.  After some discussion, the admins allowed him to register a new account on a provisional, probationary basis.  Since then, Drelick has been true to his word in demonstrating his willingness to cooperate with DMZX policies, and has actually become a respected member of the community once more.&lt;br /&gt;
&lt;br /&gt;
Luke Drelick is also one of the more prolific [[:Category:MZXers|MZXers]] in history, especially in his early days.  He created several complete games of considerable length, the most famous of which is probably [[Engine (game)|Engine]].  Since his return to the community, he released a [[special edition]] of Engine, and a similar treatment for [[Kikan]], another of his older games.&lt;br /&gt;
&lt;br /&gt;
[[Category:MZXers]]&lt;br /&gt;
{{NeedsPeerReview}}&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Lancer-X&amp;diff=5846</id>
		<title>Lancer-X</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Lancer-X&amp;diff=5846"/>
		<updated>2008-04-29T08:46:46Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: mostly tore out stuff i found really grating :(&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lancer-X is a longtime [[MZXers|MegaZeuxer]] and one of the recent maintainers/developers of [[MegaZeux]] itself. He is known in the community for his skill in programming, in [[Robotic]] and in other languages. In 2006 he was made a moderator of the [[DigitalMZX]] game development forum. In addition to his many MegaZeux releases, Lancer-X is also known for having released two standalone computer games independently: Butterfly Samurai and Meritous.&lt;br /&gt;
&lt;br /&gt;
==Games Released==&lt;br /&gt;
&lt;br /&gt;
* [[Avatar of Darkness|Avatar of Darkness (Demo)]]&lt;br /&gt;
* [[Bat 'n' Ball Pong Clone]]&lt;br /&gt;
* [[Black Cat OP]]&lt;br /&gt;
* [[Cans 5]]&lt;br /&gt;
* [[Castle Attack Beta]]&lt;br /&gt;
* [[Exo RPG]]&lt;br /&gt;
* [[Firefly OP]]&lt;br /&gt;
* [[Halberd of Azalta]]&lt;br /&gt;
* [[Lancer's Crappy Puzzle Thing]]&lt;br /&gt;
* [[Necroscathe Full Release]]&lt;br /&gt;
* [[Pandora]]&lt;br /&gt;
* [[Taoyarin]]&lt;br /&gt;
* [[Termination|Termination Rehash]]&lt;br /&gt;
* [[Things]]&lt;br /&gt;
&lt;br /&gt;
MegaZeux 2.81e is credited to Lancer-X and [[ajs]].&lt;br /&gt;
&lt;br /&gt;
==Non-MZX Games Released==&lt;br /&gt;
&lt;br /&gt;
* Butterfly Samurai&lt;br /&gt;
* Meritous&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.asceai.net/ Lancer's Website]&lt;br /&gt;
* [http://www.asceai.net/meritous/ Meritous Webpage]&lt;br /&gt;
* [http://www.asceai.net/ButterflySamurai/ Butterfly Samurai Webpage]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Stub}} [[Category:MZXers]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=User:Wervyn&amp;diff=2499</id>
		<title>User:Wervyn</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=User:Wervyn&amp;diff=2499"/>
		<updated>2006-11-26T17:46:33Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User&lt;br /&gt;
|nick = Wervyn&lt;br /&gt;
|image = Wervyn.jpg&lt;br /&gt;
|fullname =&lt;br /&gt;
|location = Atlanta, GA&lt;br /&gt;
|birthday = May 27th, 1983&lt;br /&gt;
|jointime = December 2000&lt;br /&gt;
|interests = Programming, Japanese, Game Theory, Music, Mathematics&lt;br /&gt;
|mzxgames = [[Bob's Pipe City|Bob's Pipe City (unfinished)]], [[Megazeux Combat Trainer]], Various [[Day of Zeux|DoZ]] entries&lt;br /&gt;
|companies = [[Arctic Fusion]]&lt;br /&gt;
|ircname = Wervyn&lt;br /&gt;
|email = wervyn [at] gmail [dot] com&lt;br /&gt;
|preferredim = AIM&lt;br /&gt;
|imname = Wervyn&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Autobiography ==&lt;br /&gt;
I wasn't always so mellow.&lt;br /&gt;
&lt;br /&gt;
Man, where did this whole thing begin anyway?  It feels like so long ago and so much has changed (and by turns, stayed the same).  I guess I should start with what I can remember.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux===&lt;br /&gt;
&lt;br /&gt;
From the beginning, I was probably what would be considered a prodigy, at least on the small scale.  I think I used to be proud of that, but not so much anymore.  After all, it's not like that's something I ever had any control over, and the part that I did control, the application part, I tended to slack on.  All the talent in the world doesn't make an ounce of difference if it goes unused, and I was generally content to be &amp;quot;that smart kid&amp;quot;.  In any case, I got hooked on math pretty early, and was ahead of the grade from kindergarten onward; first a year ahead, then two, and then thanks to some summer courses, as many as four years ahead of what's considered standard.  At least, I think it's still the case that a lot of people don't take Calculus until they go to college (if they go to college at all).  I was doing Calculus as a high school freshman.&lt;br /&gt;
&lt;br /&gt;
Programming, too, that started early.  I think I was only out of fourth or fifth grade when I went off to a computer camp for the summer and learned BASIC, and then Pascal the following year.  And even before that I remember doing LOGO.  The idea of giving a computer instructions and getting it to do something in response was enticing and intoxicating; I was in love from the very first.  And I do remember, even at that time around 1990, getting an old 5 1/4&amp;quot; floppy disk labeled '[[ZZT]]' and playing around with it with a good old friend of mine.&lt;br /&gt;
&lt;br /&gt;
Oh, those were the halcyon days of my youth, and ZZT was a veritable toy box of nifty doodads and widgets.  Not that I was very good at first, but how many of us really were?  I know it was quite awhile before I even figured out how to attach boards together without using passages, not to mention working out exactly what was entailed by setting these &amp;quot;flag&amp;quot; things.  And I suppose I never had the experimental curiosity necessary to work out any of the really interesting exploits and hacks possible in ZZT for myself; it was years before I discovered STK, after it dawned on me that I could use the internet to look for other people who used the program.  But for what it was to me then, it was fun.  For both me and my friends, but ultimately it left lasting influence on me alone.&lt;br /&gt;
&lt;br /&gt;
It was the summer of 1997 when I first made the connection that the internet, being vast and infinite, must be home to other people who also used and loved ZZT.  A rudimentary search proved my guess, and among other things turned up a slew of ZZT games.  Most of them sucked, granted, but during that time I discovered barjeese and Nightmare, CJ's Wuzzles and Yindle, and learned who GReg JAnson was and why I should care about him.  I also chanced upon an inexplicable site called &amp;quot;The Saga of the ZZT/MZXers&amp;quot;.  It didn't have any games on it, so I ignored it for the time.  But I had no idea of what that chance connection would cause.&lt;br /&gt;
&lt;br /&gt;
I suppose I would have inevitably stumbled on [[MegaZeux|Megazeux]] one way or another no matter what the case, long before I actually got involved in the community in a significant way.  But that's what happened: this internet epiphany had occurred at a summer program called TIP (I was there learning C++).  When I got home that August, eager to find more ZZT games to put on my own computer and to try out some of the things I'd learned about it, I also looked into this thing called MZX.  And from that moment onward, ZZT really didn't stand a chance.  From the moment I started up the program and was greeted with that now legendary orchestra hit, ZZT had lost its hold on me.  Megazeux was bigger, better, and badder in almost every respect than its predecessor; it had freaking MUSIC, man, and scrolling boards, and editable characters...  I was captivated, utterly, before I'd had a chance to form a bond with the ZZT side of the community at all.&lt;br /&gt;
&lt;br /&gt;
Honestly, as far as MZX and ZZT represent basic philosophical ideologies, this probably would have happened no matter what.  But I do sort of regret that I missed out on half of the story.  However, given my extreme hesitance to publicly enter the community, I wonder that I wouldn't have missed out regardless.  I discovered MZX in the autumn of 1997, but I didn't start actively interacting with the MZX community until two years later.  During that interim, I sat, and I watched, and I lurked, and I worked on [[Bob's Pipe City]], and all the while wondered whether this IRC thing was really all that and a bag of chips like everyone claimed it was.&lt;br /&gt;
&lt;br /&gt;
I don't remember the exact date anymore, but definitely, some time that fall I finally bit the bullet and got on AustNET to see what this &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;megazeux thing was all about and start making a name for myself.  This was in large part due to the urgings of a guy named ZZco, whom I still keep in occasional contact with to this day, and at that time I was helping him with an ambitious game project he called 'The Misty Mountains'.  (&amp;quot;So you're referencing Tolkien?&amp;quot;  &amp;quot;...Who?&amp;quot;)  I really wish I could still remember the chronology of what happened back then, but at that time I very quickly distinguished myself as being more than just another newbie.  I impressed a few people by showing them BPC (which to this day is still only about as complete as it was then), joined a [[Day of Zeux]] with [[Exophase]] and Guyver, witnessed the collapse of administration on AustNET, and moved to [[espernet|Esper]], then to pfnet, then back to Esper again while working my way into the trusted circle of operators.&lt;br /&gt;
&lt;br /&gt;
Regarding that final move back to Espernet, I do remember very well how tensions in the channel spurred us to devise a split, whereby we would leave the people we didn't like on pfnet and hightail it with the people we did like over to Esper.  Actually I'm not sure if it was really a laid out scheme, but it worked so well that it's hard not to take some credit for it.  And to be sure, it didn't discriminate as cleanly as we might have hoped.  We divested ourselves of piman (giving my spot as operator of the channel to him was my own personal touch), but we also lost teferi and Stargazer, whom I actually really liked.  The actual ideological split then somewhat resembles the schism between the ZZT and MZX communities now, if I remember right, with the notable difference that piman was extremely Linux obsessed.  We were more staid and conservative and interested in directed discussions that might actually have something to do with MZX, while they were more chaotic and anti-authoritarian and wanted to be able to talk about whatever topics they wanted.&lt;br /&gt;
&lt;br /&gt;
And then there was [[DigitalMZX]].  Back in 2000, mWorld was the de facto HTTP resource when it came to MZX.  But as that year came to a close, and with the general quality of the forums there (both in technical capabilities and in content), many people, including myself, abandoned it for this new site run by these two guys no one had ever heard of (or at least I certainly hadn't).  I was probably a later adopter than others, I really always have been, but I came over in December that year.  And in it, I found a pseudo-political arena much more suited to my tastes than IRC.  I let my positions of power on IRC slide into obsolescence with the natural flow of things; when &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;roundtable collapsed and &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;mzx was born, I did not (and still don't plan to) pursue an operator position.  Instead, I used my connections to climb the administrative ladder at the new forums.&lt;br /&gt;
&lt;br /&gt;
When [[Tixus]] introduced his pet project, the Elite caste, I was among the first inductees.  Later, I gladly took a position as Moderator over the same domain that [[Lancer-X]] is holding now.  In summer of 2002, I took a break for Lent and so passed up the opportunity for promotion at the same time as [[Terryn]], but before the year was out I had secured that coveted position of Admin, where I've remained to this day.  Of course, during that time the gung-ho zealousness with which I had been approaching power struggles in the community began to abate.  For a long time I had loved to argue and debate with people, but as DMZX became more about work and less about fun that passion faded.  Over time, I've tried to set up policies that foster an enjoyable environment for everyone, but the active participation that would really cement those policies by example has just been too burdensome to attempt.  I'm an apathetic husk now, content only to apply band aids to serious injuries and occasionally to tell people what I think they should be doing.&lt;br /&gt;
&lt;br /&gt;
===School===&lt;br /&gt;
&lt;br /&gt;
This really brings everything back around to some of my original problems.  I've pretty much always been a heavy procrastinator, and prone not so much to losing interest in things, but in losing the motivation and energy to do them.  This problem was only exacerbated&lt;br /&gt;
when I got sick, back in 1998.  I still wonder if I might have produced more with and for MZX if that hadn't happened, and I'm still not sure exactly what long-term effects the whole thing has had on me.  I just know that it has inarguably transformed my attitude and approach towards life, some for the better, and some perhaps not so much.  But none of you ever knew me before the illness.&lt;br /&gt;
&lt;br /&gt;
The illness I contracted was called Sydenham's Chorea, and my general advice on that is if you ever get strep throat, get it treated instead of just waiting it out.  You really don't want the debilitating side effects of a rare secondary disease that can last for years afterwards.  Besides the shaking, which really only lasted a couple years, my energy level dropped dramatically, I started sleeping a lot more, and for a long time I felt like the disease had prematurely curtailed my ability to learn new things and disciplines, or even to apply old knowledge.  School actually became hard for me, and not just because I started taking my courses from home; I remember being very distraught because I simply wasn't &amp;quot;getting&amp;quot; Chemistry, which was something that I'd never had to deal with before.&lt;br /&gt;
&lt;br /&gt;
All things considered though I really had no problems getting through high school.  The courses, even the AP courses, were only up to a certain level of study, and I was after all gifted, so ultimately, despite a few bobbles (AP World History definitely comes to mind), I was able to just coast through without having to worry that I had an open excuse for absence that I did take advantage of, as well as mediating teachers working to make concessions for me.  All this combined to reinforce an extremely poor work ethic for college, which has nearly been a disaster for me multiple times.  I had to get an emergency medical withdraw from my first semester because I simply hadn't done ''any'' work by the end, and was only able to do so by pleading the extenuating conditions of my illness.  This tactic wasn't going to work again a year and a half later, when I failed four out of five courses for the same reason.  I was two years in, and despite some course credit from AP scores and joint-enrolled classes I had taken before entering college, I was a year behind schedule when I should have been a year ahead.&lt;br /&gt;
&lt;br /&gt;
Things got a little better from there, but really only because there was nowhere to go but up.  Still, that summer marked the beginning of my relationship with GTRI, and a closer relationship with my good friend Miles when I moved into the same big house with him and a bunch of other students.  Miles is the sort of guy any parent would probably regard as a &amp;quot;good influence&amp;quot;: genial, studious, and extremely good-natured.  He was also pretty well aligned with the sorts of things I was interested in.  Even so, it was still rough sailing, with fall generating a withdrawal and a D (which couldn't be counted even as passing credit, due to requirements for major related courses), and spring being only a little better, where I barely managed to eke out a C in a Systems course based largely on pity.&lt;br /&gt;
&lt;br /&gt;
I spent the following summer exclusively at work, and I did do some things I was proud of then, but I know my boss, who's a very nice and understanding guy, was still very concerned about my attitude towards work, which produced very nice results when it was producing, but which also lent itself to distraction very easily.  I'm not sure exactly how close I've gotten to being fired outright since I've been at GTRI, but I've definitely received some stern talkings to and some hard ultimatums about my performance.  Still, things were on the upswing moving into fall.&lt;br /&gt;
&lt;br /&gt;
Fall 2004 began my continuing love affair with Japanese.  Before that point, I was probably in the same camp as [[Esdemo1|Es]] regarding the language: people who learn Japanese are just anime-obsessed posers.  However, ever since Gundam Wing, I'd slowly become more and more anime obsessed myself, and I wanted to find a grounding point that I could use to help me improve my diligence towards school and especially in attending class.  Back in that dismal spring where I failed four courses, the other course I actually made an A in, because it was a circuitry course and that's always been a sort of pet hobby of mine.  I was interested in the material and I was interested in attending, and so I did extremely well.  I hoped Japanese would provide the same sort of draw for me, and that I might be able to apply that to my other courses.&lt;br /&gt;
&lt;br /&gt;
At least some of this plan actually did work.  I attended Japanese more regularly than any other course ever in the past.  This was in no small part due to attendance being required, and the fact that I really did want to do well in this course, as opposed to courses with similar attendance policies that I was generally ambivalent towards.  And my grades did improve that semester, despite the fact that my overall class attendance wasn't really improving in them.  Part of it was, no doubt, that I was in a position where I had to either succeed at school or concede that I'd wasted too much of my parents' money on failed courses, but I was definitely more engaged than I was before.&lt;br /&gt;
&lt;br /&gt;
Still, I wasn't really out of the hole I'd dug for myself until the next year.  The following spring saw a dip when I took a half semester to work at the same time, and only mustered a C in Physics II while maintaining my A in Japanese.  Summer was a near disaster, when the combined circumstances of no Japanese course to take, worsening conditions at my campus-side house, and foolishly getting addicted to World of Warcraft, nearly sabotaged my grades again.  I managed to squeak through Squeak in the end, but I had to take a serious look at how I was approaching school again, because clearly I still wasn't quite getting it.&lt;br /&gt;
&lt;br /&gt;
And then somehow, from that point on, everything just clicked into place.  Things began to improve very rapidly that fall.  I account a large part of this to what I see as a spiritual revival, but there were other factors.  I moved to a new apartment that wasn't dirty and starting to fall apart.  I finally got tired of just drifting through school a semester at a time and worked out exactly how I was going to graduate in the next two years.  And I started trying to actively pursue more extra-curricular activities, many of them not MZX related.  Some of them took off, some did not, but I really started paying attention to what I was doing with my life, instead of just letting life happen to me.&lt;br /&gt;
&lt;br /&gt;
So from that point onward, I consider myself effectively cured of my lingering illness and depression.  I'm still not as active as I'd really like to be, and I still have unresolved issues with procrastination, but the progress I've made in reorganizing my life has given me a lot of hope and a lot of peace.  In the end, I've become mellow, and I've discovered that it's a wonderful feeling.&lt;br /&gt;
&lt;br /&gt;
(to be continued)&lt;br /&gt;
== User Comments ==&lt;br /&gt;
&lt;br /&gt;
Wervyn is a fantastic man. His programming and storywriting skills are definitely a step beyond being up-to-scratch, and in general he's a great person to talk to.&lt;br /&gt;
&lt;br /&gt;
Now he just needs to make something new~!&lt;br /&gt;
&lt;br /&gt;
~ [[User:Lancer-X|Lancer-X]] 10:03, 9 November 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We could all learn something from this most excellent guy. Finish the autobiography, Wervyn!&lt;br /&gt;
&lt;br /&gt;
--[[User:Asgromo|asgromo]] 11:46, 26 November 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://kyush.udevio.us/] - A blog of Wervyn's trip to Japan; no longer updated.&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Talk:Signore&amp;diff=2498</id>
		<title>Talk:Signore</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Talk:Signore&amp;diff=2498"/>
		<updated>2006-11-26T17:31:23Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: consider for deletion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Delete this ==&lt;br /&gt;
This is... crap... No one says... this. =( &lt;br /&gt;
--[[User:Asgromo|asgromo]] 11:31, 26 November 2006 (CST)&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Trev-MUN&amp;diff=2337</id>
		<title>Trev-MUN</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Trev-MUN&amp;diff=2337"/>
		<updated>2006-10-29T23:37:37Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basic Information ==&lt;br /&gt;
&lt;br /&gt;
Trev-MUN is an [[:Category:MZXers|MZXer]] who has been in the community for a very long time. For some portion of that time he was working on a game entitled [[Sir Kupon]] which dealt with a moogle which was 3x3 characters large. However, due to a combination of factors, not the least of which was the [[Character Set|charset]] limitation (the human characters were to be 3x4) the project shut down.&lt;br /&gt;
&lt;br /&gt;
One of Trev-MUN's more well-known creations has been the numerous custom CFC Cards for members of the community.&lt;br /&gt;
&lt;br /&gt;
== Non-MZX Pursuits ==&lt;br /&gt;
&lt;br /&gt;
While he is a fairly active member of the MegaZeux community, he also plays Ragnarok Online and draws a webcomic, Ragnarok Wisdom, which is based on life in the game. He also makes the annual webcomic [[The Legend of Key-Fu]], known for its random sense of humor. Trev-MUN is also working on a science-fiction universe called Ad Ultimum, and enjoys discussing philosophy/theology of religion.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.adultimum.net/keyfu/ The Legend of Key-Fu]&lt;br /&gt;
* [http://www.adultimum.net/rw/ The Legend of Key-Fu]&lt;br /&gt;
* [http://www.adultimum.net Ad Ultimum]&lt;br /&gt;
* [http://www.livejournal.com/~ils_trevmun/ LiveJournal]&lt;br /&gt;
&lt;br /&gt;
== Community Comments ==&lt;br /&gt;
&lt;br /&gt;
Totally a fan of Trev-MUN; he's fun to hang around and a good artist, and I enjoy the theological discussions. --SSoriak 03:52, 29 October 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
For all I could disagree with this guy on basically every topic, he remains entirely ''the man''. He's probably going to go really far in life. --[[User:Asgromo|asgromo]] 17:37, 29 October 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category:MZXers]]&lt;br /&gt;
[[Category:Needs peer review]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Super_ZZT&amp;diff=1615</id>
		<title>Super ZZT</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Super_ZZT&amp;diff=1615"/>
		<updated>2006-10-18T15:31:02Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Super ZZT is Epic MegaGames' successor to [[ZZT]], created by Allen Pilgrim and [[Tim Sweeney]]. Like its predecessor, Super ZZT is a [[game creation system|GCS]] packaged with a few games, including Lost Forest, Monster Zoo, and Proving Grounds. Like ZZT, Super ZZT's greatest draw was its level editor. Strangely, the editor itself was somewhat &amp;quot;hidden&amp;quot; by the creators, as it was necessary to add the argument /e to the command line when loading Super ZZT in MS-DOS.&lt;br /&gt;
&lt;br /&gt;
Some changes to this version include floor textures, new prefabricated enemies and objects, and scrolling maps- allowing for much larger worlds than were possible in ZZT. Although Super ZZT is in many ways a vast improvement over ZZT, it never caught on with the ZZT community like the original, and had very few finished games. Notable programming group [[Interactive Fantasies]] released three Super ZZT games.&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Engine_(game)&amp;diff=1395</id>
		<title>Engine (game)</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Engine_(game)&amp;diff=1395"/>
		<updated>2006-10-13T02:16:53Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game| title = Engine&lt;br /&gt;
|image = &lt;br /&gt;
|creator = [[Luke Drelick]]&lt;br /&gt;
|company = [[Duky]]&lt;br /&gt;
|released = 1995&lt;br /&gt;
|genre = RPG&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Engine_(game)&amp;diff=1394</id>
		<title>Engine (game)</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Engine_(game)&amp;diff=1394"/>
		<updated>2006-10-13T02:10:14Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game| title = Engine&lt;br /&gt;
|image = &lt;br /&gt;
|creator = Luke Drelick&lt;br /&gt;
|company = Duky&lt;br /&gt;
|released = 1995&lt;br /&gt;
|genre = RPG&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Template:Game&amp;diff=1393</id>
		<title>Template:Game</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Template:Game&amp;diff=1393"/>
		<updated>2006-10-13T02:07:19Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Here is both the code and a preview of the Game template.  Use it in MZX/ZZT game articles. For the image, you can use the following code: &amp;lt;nowiki&amp;gt;[[Image:&amp;lt;/nowiki&amp;gt;''Filename''&amp;lt;nowiki&amp;gt;|center||250 px|&amp;lt;/nowiki&amp;gt;''Caption''&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: transparent; float: left;&amp;quot; &lt;br /&gt;
|&amp;lt;pre&amp;gt;{{Game| title = &lt;br /&gt;
|image = &lt;br /&gt;
|creator = &lt;br /&gt;
|company = &lt;br /&gt;
|released = &lt;br /&gt;
|genre = &lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;game&amp;quot; style=&amp;quot;border-spacing: 5px; padding: 5px; margin-left: 5px; margin-right: 0px; margin-top: 0px; margin-bottom: 5px; width: 25em; font-size: 90%; align: right; float: right; clear: right;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background: #ccccff none; font-size: 150%; text-align: center;&amp;quot; | '''''{{{title}}}'''''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | {{{image}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; background: #ccccff none; padding: 5px;&amp;quot; | '''[[Author]]'''&lt;br /&gt;
| style=&amp;quot;width:15em; padding: 5px;&amp;quot; | {{{creator}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; background: #ccccff none; padding: 5px;&amp;quot; | '''[[ZZT Company|Company]]'''&lt;br /&gt;
| style=&amp;quot;width:15em; padding: 5px;&amp;quot; | {{{company}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; background: #ccccff none; padding: 5px;&amp;quot; | '''Release Date'''&lt;br /&gt;
| style=&amp;quot;width:15em; padding: 5px;&amp;quot; | {{{released}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; background: #ccccff none; padding: 5px;&amp;quot; | '''[[Genre]]'''&lt;br /&gt;
| style=&amp;quot;width:15em; padding: 5px;&amp;quot; | {{{genre}}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Template:Wrongtitle&amp;diff=1392</id>
		<title>Template:Wrongtitle</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Template:Wrongtitle&amp;diff=1392"/>
		<updated>2006-10-13T01:51:10Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;''The correct title of this article is '''{{{1}}}'''. It appears incorrectly here because of technical restrictions.''&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Engine&amp;diff=1388</id>
		<title>Engine</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Engine&amp;diff=1388"/>
		<updated>2006-10-13T00:51:18Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;i&amp;gt;For the game by [[Luke Drelick]], see [[Engine (game)]].&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An &amp;lt;b&amp;gt;engine&amp;lt;/b&amp;gt; is one or more [[robot]]s working to perform a specific task. Engines are the meat and potatoes of any decent game. Typical functions of gameplay engines include allowing the player to wield a sword, controlling jumping/gravity in a sidescrolling game, drawing and moving [[sprite]]s on the screen, handling text boxes, status menus, and battles in an RPG, and simulating first-person perspective.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Day_of_Zeux&amp;diff=1387</id>
		<title>Day of Zeux</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Day_of_Zeux&amp;diff=1387"/>
		<updated>2006-10-13T00:48:41Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &amp;lt;b&amp;gt;Day of Zeux&amp;lt;/b&amp;gt;, typically abbreviated as &amp;lt;b&amp;gt;DoZ&amp;lt;/b&amp;gt;, is a competition in which teams and solo competitors are assigned two topics and must create a game within 24 hours based on one of the topics. The submitted games are then scored by a number of judges (usually four) selected by the DoZ's host to determine the winner.&lt;br /&gt;
&lt;br /&gt;
Days of Zeux are typically held twice per year, within the first month of summer and first two weeks of winter.&lt;br /&gt;
&lt;br /&gt;
==Default Day of Zeux Rules==&lt;br /&gt;
These are the default rules that a Day of Zeux should be run under.&lt;br /&gt;
===Teams===&lt;br /&gt;
Teams will consist of one to three people. If necessary, competitor(s) may also appoint an alternate member who can take the place of any member of their team should they be unable to attend the Day of Zeux. This alternate member can only be added to the team at the start of the DoZ, before the topics are announced. Sign-ups should typically be accepted from the time the form goes on the page until the Day of Zeux ends (for obvious reasons, the alternate member field should be removed when the topics are announced).&lt;br /&gt;
&lt;br /&gt;
===Topics===&lt;br /&gt;
When the Day of Zeux starts, two topics will be presented: a general topic and a specific topic. They should be posted in as many places as possible - [[DMZX|DigitalMZX]], IRC, and on the DoZ site (if one was created). A team or solo competitor may only use one topic as their game's theme. If the average score in the theme category for anyone's game is below 10 (33%), it will automatically be disqualified.&lt;br /&gt;
&lt;br /&gt;
===Team Numbers===&lt;br /&gt;
Each team will receive a number prior to the start of the competition. These number were originally used for anonymity purposes; however, since the anonymity rule typically no longer applies to DoZs, it is now merely for traditional and organizational purposes. The ZIP/RAR file that competitor(s) submit must have a filename that matches their team number. Failure to follow this rule will result in disqualification.&lt;br /&gt;
&lt;br /&gt;
===External Material===&lt;br /&gt;
All material except music, sound, and the default MZX charsets/palette must be created within the 24 hour period. If any evidence is found that the competitor(s) used material such as engines, character sets, palettes, and artwork created before the announcement of the topics, the competitor(s) will be disqualified. Use of external programs such as [[CharWorks]] and [[Palzor]] during the Day of Zeux is permitted, as long as it is done within the 24 hours.&lt;br /&gt;
&lt;br /&gt;
===Game Submission===&lt;br /&gt;
Before submission, the competitor(s) must make sure that the ZIP has the same filename as your team number (ie. 424.zip for team 424). The game will be expected to run as intended when it is unzipped, so make sure you include all music, WAVs, and, of course, the .MZX file. Games must be submitted to, and received by, the host of the Day of Zeux in any way possible. (note to competition hosts: enter your contact information here)&lt;br /&gt;
&lt;br /&gt;
===Grace Period===&lt;br /&gt;
Following the end of the 24 hours, a one hour grace period will be in effect for late submissions and patch submissions (see below). Any games submitted in the second half hour of this period will receive a score penalty depending on how late it was received. Any games submitted after the DoZ and grace period have ended will be judged, but disqualified.&lt;br /&gt;
&lt;br /&gt;
    *  1-30:   no deduction from final score&lt;br /&gt;
    * 31-40: 7.5% deduction from final score&lt;br /&gt;
    * 41-50:  15% deduction from final score&lt;br /&gt;
    * 51-60:  30% deduction from final score&lt;br /&gt;
&lt;br /&gt;
===Patch Submissions===&lt;br /&gt;
Competitors will be allowed unlimited patch submissions during the first half hour of the grace period, with no penalty. After that half hour has passed, competitors will be allowed one patch submission, which will suffer the score penalties above depending on lateness. (If the first submission is received during this half hour, it will count as your patch submission.) Any further patch submissions will suffer the score penalties, PLUS an additional 5% penalty for each patch submission. Please make sure you are satisfied with your game's status when you submit.&lt;br /&gt;
&lt;br /&gt;
===MegaZeux Version===&lt;br /&gt;
The judges will be playing all games in the latest version of MegaZeux (2.81c as of this writing), so please make sure it runs well in that version before submission. SMZX mode will be permitted, but no bonus will be given just because you are using SMZX, so if you're going to use it, use it right.&lt;br /&gt;
&lt;br /&gt;
==Scoring==&lt;br /&gt;
&amp;lt;i&amp;gt;The scoreset and text in this section were written by [[Wervyn]], with slight alterations.&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum score that any judge can give to a game is 400 points (300 before rank weighting is factored in). After rank weighting is applied, the sum of all judges' scores, minus late penalties incurred during the grade period described in the rules, will be the final score (1600 points is the maximum score if there are four judges).&lt;br /&gt;
&lt;br /&gt;
===Gameplay===&lt;br /&gt;
75 points max. The meat and potatoes of any game. If you don't have gameplay, what DO you have? This encompasses how well the game works as a whole, how fluid the play is, and most importantly, whether it's FUN or not.&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
60 points max. All this emphasis on graphics over game these days is sickening! But even so, graphics are an important part of the game, since without them, we'd just be playing text adventures (not entirely a bad thing, but still). So, does your game look nice, have you made good use of space and color, or do I want to stab out my eyes as soon as I load the title screen?&lt;br /&gt;
&lt;br /&gt;
===Innovation===&lt;br /&gt;
45 points max. Mother is the necessity of innovation, or something like that. We at the DoZ value creativity and new design concepts highly. Of course, make sure your brilliant idea WORKS, first. Innovation that makes the game new, interesting, on basically makes me go &amp;quot;hmm, never thought of doing that before&amp;quot; is a good thing. Innovation that crashes my computer, not so much.&lt;br /&gt;
&lt;br /&gt;
===Plot===&lt;br /&gt;
40 points max. Me, I'm a sucker for a good story, I can almost forgive a game for being buggy as hell and for looking like my monitor threw up, if the story sends me into raptures of ecstasy. Almost. Story is important, but it's not going to carry your game any more than your nifty sword engine will. Also, plot will be scored according to how important the judge thinks plot is to the game. You probably won't get a perfect score here without a perfect plot, but you might get a decent score here for no plot at all, if your game is designed to be a mindless arcade shoot-em-up.&lt;br /&gt;
&lt;br /&gt;
===Music/Sound===&lt;br /&gt;
35 points max. Music does for the ears what graphics do for the eyes. Humans being (by and large) visual creatures, this category is only worth about half as much, but it's still important. Music creates ambiance, and sound effects heighten the atmosphere. If they don't work with the game, then they might as well not be there. For this reason, you may be awarded a few pity points for having no sound or music , since we firmly believe that no audio is better than bad audio.&lt;br /&gt;
&lt;br /&gt;
===Theme===&lt;br /&gt;
30 points max. The purpose of the theme category is more to ensure that you're following the rules than it is to get you points. That said, you'll be sorry if you completely neglect this, since as outlined in the rules, if three or more judges score your theme less than 33% (less than 10 points), you automatically lose.&lt;br /&gt;
&lt;br /&gt;
===Discretion===&lt;br /&gt;
15 points max. For all the niggling little details that just don't seem to fit in any other category. Mostly, this is about using common sense and good taste. Loads of pointless obscenity, obvious pandering to the judges (as opposed to subtle pandering, which can be a good thing if done right), and sometimes particularly addle-brained bugs, all will get you counted off here.&lt;br /&gt;
&lt;br /&gt;
===Rank Weighting===&lt;br /&gt;
100 points max. This is a special score for the judges, so that they can incorporate their gut instinct into an otherwise methodical system. Unlike the other scores, which are directly designated by the judge, the rank weight is awarded proportionally based on the judges personal ranking of the games from best to worst. What happens is the judges favorite game receives a full hundred points, the judges least favorite game receives no points, and the games in between receive a percentage of the points based on how high they are on the list. For those interested in the formula, RW = (N - R)/(N - 1) * 100, RW is rank weight, R is the judge's awarded rank, and N is the total number of entries. IMPORTANT: This is NOT simply a restatement of the games' ranks as calculated from their other categorical scores. This is so that the judge can express their personal feelings on the submissions as a whole, independent of any other scoring they might have made.&lt;br /&gt;
&lt;br /&gt;
==Variations==&lt;br /&gt;
There are a few variations of the Day of Zeux, most of which increase or decrease the time limit. A &amp;lt;i&amp;gt;Week of Zeux&amp;lt;/i&amp;gt;, or &amp;lt;i&amp;gt;WoZ&amp;lt;/i&amp;gt;, ends exactly a week after topics are announced. A &amp;lt;i&amp;gt;Weekend of Zeux&amp;lt;/i&amp;gt;, or &amp;lt;i&amp;gt;WEoZ&amp;lt;/i&amp;gt;, usually begins on a Friday or Saturday and lasts for 48 hours. These extended time competitions are extremely rare, as people often lose interest before the competition ends and very few quality submissions are actually received.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;i&amp;gt;[[Blitzkriegzeux]]&amp;lt;/i&amp;gt;, or &amp;lt;i&amp;gt;BKZX&amp;lt;/i&amp;gt;, which the DoZ itself was originally based on, is usually organized on IRC and can last up to two hours. Day of Zeux scoring rules rarely (if ever) apply to a BKZX; most BKZXes taking place after 2004 are scored by peer ranking, but in rare cases (or when there are less than three competitors), the person organizing the BKZX decides which game is the best.&lt;br /&gt;
&lt;br /&gt;
==Past Days of Zeux==&lt;br /&gt;
Fill this in plztkhx.&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Competitions]]&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
	<entry>
		<id>https://www.digitalmzx.com/wiki/index.php?title=Category:Games&amp;diff=1386</id>
		<title>Category:Games</title>
		<link rel="alternate" type="text/html" href="https://www.digitalmzx.com/wiki/index.php?title=Category:Games&amp;diff=1386"/>
		<updated>2006-10-13T00:41:17Z</updated>

		<summary type="html">&lt;p&gt;Asgromo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[MegaZeux]] has been around since 1994, so what would it be today without a strong library of games to play and learn from? These are links to pages describing a variety of games created for the [[GCS]].&lt;/div&gt;</summary>
		<author><name>Asgromo</name></author>
	</entry>
</feed>