home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
262.lha
/
SpriteWizard_v1.0
/
SW_Help.doc
< prev
next >
Wrap
Text File
|
1989-06-30
|
20KB
|
435 lines
Sprite Wizard - By David A. Visage
(c) 1988 Message Software
James Messa and David Visage
GET THE MESSAGE!
Welcome to SpriteWiz, possibly the best sprite editor for the Amiga!
Before I go into detail about how SpriteWiz works, some of the available
features are as follows :
(1) Up to 26 sprite images can be edited at one sitting NOTE 1
(2) Each sprite can have it's own set of three colors
(3) Sprite images can be saved as C or 68000 source code
(4) Sprite binary data can be saved for later editing
(5) Sprite images can be rotated 90 degrees left or right NOTE 1
(6) Sprite images can be flipped on the X or Y axis
(7) Sprite images can be scrolled in all four directions NOTE 1
(8) An animation sequence can be entered and viewed
(9) Sprite colors can be set to default colors at any time
(10) As the RGB gadgets are moved, affected colors change instantly
(11) Speed for the animation routine is user selectable
(12) A buffer option for get and put operations
(13) Sprite images can be negated. Also called "exclusive-or".
(14) Continuous display of the current (X,Y) plotting coordinates
(15) Continuous display of the current sprite number (A - Z).
NOTE 1 - SpriteWiz has a feature not found in many programs. This feature
is called repeat mode. For example, the scroll mode is activated
by hitting either the scroll up, scroll down, scroll left, or
scroll right gadget. Once this mode is active, the sprite will
continue to scroll in the selected direction until the mouse
select button is released. The features listed above that are
marked with "NOTE 1", all have a repeat mode.
The layout of the SpriteWiz screen is intuitive and user-friendly.
The left side of the SpriteWiz screen is reserved for the edit grid.
This grid is exactly 16 boxes high by 16 boxes wide. Version 2.0 of
SpriteWiz will feature editable sprites up to 192 pixels tall.
The upper right hand corner of the screen has an indicator that always
shows the current pen color. Thus, if the mouse is positioned in the edit
grid and the mouse select button is depressed, whatever color is shown in
the current color indicator will be plotted at the point where the pointer
is positioned. More importantly, a corresponding pixel will also be
plotted within the current edit sprite.
The current sprite image is in the lower right hand corner of the screen.
As the image is drawn or erased or the edit grid, the new sprite image is
automatically drawn or erased.
Next to the current color indicator are the repeat gadgets.
Starting from the right they are :
(1) Sprite select gadgets - These are used for selecting which sprite
image to edit. Hitting the plus gadget selects higher sprite numbers.
Hitting the minus gadget selects lower sprite numbers.
These are repeat gadgets. Thus, when they are selected, they will
will continue to flip through each sprite until the mouse select
button is released. These gadgets also feature a wrap-around mode.
To see how this mode works, select sprite 'A' and continue to
hold down the plus gadget. You may also select sprite 'Z' and
hold down the minus gadget.
(2) Scroll gadgets - These are used to scroll the current sprite image
in all four directions. As long as one of the scroll gadgets is
selected, the sprite image (and the grid image), will continue to
scroll in the selected direction. This is probably one of the
most eye-opening modes of SpriteWiz.
(3) Rotate gadgets - These are used to rotate the current sprite image.
Selecting the gadget on the right will rotate the current sprite
image at 90 degree angles to the right. Selecting the gadget on the
left will rotate the current sprite image at 90 degree angles to
the left. As the sprite image is rotated, the grid image is also
rotated.
The current drawing pen color is selected by hitting one on the color
select gadgets. Gadget labels and descriptions are as follows :
COL0 - This gadget always selects the background color. Selecting this
color is how SpriteWiz performs the erase operation. If COL0 is
the active draw color and a point is plotted on the edit grid,
that point will automatically be set to the background color.
In addition, the corresponding point within the current edit sprite
is erased. For interested people, selecting this color is the
same as using bit pattern '00'.
COL1 - This gadget always selects sprite color one. For interested
people, this color is the same as using bit pattern '01'.
COL2 - This gadget always selects sprite color two. For interested
people, this color is the same as using bit pattern '10'.
COL3 - This gadget always selects sprite color three. For interested
people, this color is the same as using bit pattern '11'.
Please see the Amiga hardware reference manual or the ROM kernal manuals
for more details on how sprite colors are determined.
When one of the color select gadgets is selected, the following happens :
(1) The current color indicator changes to the selected color.
This becomes the current draw color when a point is plotted within
the edit grid.
(2) The RGB gadgets (Labled with R,G, and B) show you the amount of red
green and blue in that color.
The RGB gadgets are directly below the color select gadgets and to the
left of the current sprite image. As mentioned above, these gadgets
show you the amount of red, geen and blue in the currently selected
drawing color. These gadgets operate in two different ways. The knob
on each gadget can be selected and dragged, or you may click within
the gadget select box. Before going any futhur, let me provide you with
a little background on how these colors are determined.
The Amiga has the capability to display any of 4096 possible colors.
Each color on the Amiga is determined by a certain amount of red, a
certain amount of green, and a certain amount of blue. These colors are
called the primary colors. That is, all possible colors are a mixture
of these three colors. On the Amiga, each one of these primary colors
must be within the range [0..15]. Below are examples of the amounts of
red, green and blue and the color they determine :
This is the color yellow
RED - 15
GREEN - 15
BLUE - 0
This is the color purple
RED - 15
GREEN - 0
BLUE - 15
This is the color orange
RED - 15
GREEN - 8
BLUE - 0
When the amount of red, green and blue are at their maximum value (15), the
color white is determined. When the amount of red, green and blue are at
their minimum value (0), the color black is determined.
The reason the Amiga palette has 4096 possible colors is that each primary
color can have any one of 16 possible values. Thus, combinations of these
three colors yield the following : 16 x 16 x 16 = 4096 colors.
Oh well, enough is enough, lets get back to SpriteWiz.
Assume the current color indicator is red. The RGB gadgets will have
red at it's maximum value. Green and blue will be at their mimimum value.
If the green gadget is clicked on, the amount of green in the current
pen color will be increased by one. Selecting this gadget until it is
at it's maximum value will change the current pen color to yellow.
You may also select the knob in the green gadget and drag it in either
direction.
When you fiddle with the RGB gadgets, the following happens :
(1) The current color indicator changes
(2) The currently selected color gadget changes
(3) Any boxes on the edit grid that have the selected color change
(4) Any points in the edit sprite that have the selected color change
(5) Certain intuition rendered things change colors too (Oh well).
The last few lines of the screen are reserved for the speed gadget, the
buffer gadget, and the current "mode". Labels and descriptions follow :
SPEED - This is used to determine the speed at which the animate feature
changes sprite images (See menu option ANIMATE).
This gadget can be moved by clicking in the select box or by hitting
the knob and dragging it to the left or right.
Faster image changing takes place as the gadget is moved to the left.
Slower image changing takes place as the gadget is moved to the right.
BUFFER - This is really two gadgets in one. Descriptions follow :
The gadget on the left has the text "GET". When this gadget is selected,
whatever sprite was in the save buffer will be moved into the current
edit sprite.
The gadget on the right has the text "PUT". When this gadget is selected,
the current edit sprite will be moved into the save buffer.
The "GET" and "PUT" gadgets are useful for doing sequenced animation.
For example, you can draw an image in sprite 'A'. When you are
satisfied with it, the image can be "PUT" into the save buffer. The
next step would be to select sprite 'B', make minor changes, and "PUT"
this sprite into the save buffer. Repeating this series of steps over
and over lets you draw a series of images that are similiar to each other.
Sequenced animation is nothing more than a series of similiar images
being flipped through.
MODE - Indicates current range mode. (See menu option Mode).
SpriteWiz has a number of menu options available. Starting from the
left they are "Project","Edit", "Mode" and "Animate".
You will notice that several options on the SpriteWiz menu are in
bold text. What this means is that these options have the ability to
work on multiple sprites. At the time of this writing, the following
can work on multiple sprites : "Save", "Save As", "Clear", and "Reset".
The default mode for options that work on multiple sprites is Current.
This can be changed by selecting another choice from the mode menu.
Please note that once a mode is selected, this mode will be used for
all options that work on multiple sprites. Modes that are currently
defined are :
Current - The operation is performed on the current sprite only.
All - The operation is performed on all 26 sprites.
From - The operation is performed starting at the current sprite and
ending at the last sprite.
Up To - The operation is performed starting at the first sprite and
ending at the current sprite.
Except - The operation is performed on all sprites except the current
sprite.
Under the "Project" menu are the following items :
"About" - This menu item has two sub-items associated with it :
(1) Author - This will give you some background information about the
author of SpriteWiz (Yours truely!).
(2) Program - This will give you some background information about the
SpriteWiz program. It also contains a small plug about
SpriteWiz V2.0
"Open" - Selecting this menu item will load sprite binary data from
the disk. Any sprite data that is to be loaded must have been saved
by SpriteWiz using the "Save" option. Please note that SpriteWiz
saves several vital pieces of information about each sprite. One of these
pieces of information is the sprite number. Thus, saved sprite binary data
is always loaded into the same place from which it was saved. If your
current edit sprite is one of the saved images in the sprite binary data,
the edit sprite image will change to the saved sprite image, all colors
will be set to the saved sprite colors, the RGB gadgets will be reset to
whatever the current pen color is, and the sprite will be recalculated on
the edit grid. Do not try to load a non-existant file or data that was
not saved using the SpriteWiz "Save" option. SpriteWiz is smart enough
to know when you are not doing something right. (Trust me!).
"Save" - This menu item will save sprite binary data to the disk. This
sprite data can be retrieved at any time by selecting the "Open" option.
Since this item is in bold text, it has the ability to work on mutiple
sprite images. See the discussion concerning the same operation on
multiple sprites. Again, do not try to save to a non-existant or invalid
device. SpriteWiz will detect when you are doing something wrong.
"Save As" - This menu item has two sub-items associated with it :
(1) C Source - This option will allow you to save the indicated sprite
data in a format that can be used in your own C programs.
The generated C code was designed to be used with AZTEC 3.4, but should
work with Lattice C as well. The example program SW_CDemo will show
you how to use the generated code is your programs.
(2) Assembler - This option will allow you to save the indicated sprite
data in a format that can be used in your own assembler programs.
The generated assembler source code was designed to be used with the Aztec
3.4 assembler, but should work with the MetaComco macro assembler as well.
The example program SW_AsmDemo will show you how to use the generated
code in your own programs.
Please notice that the "Save As" menu item is in bold text.
Thus, it has the ability to work with multiple sprite images. As mentioned
above, SpriteWiz contains very extensive error checking. Do not try to
save to an invalid or non-existant device.
Also note that the example program SW_AsmDemo.asm will not assemble with
any assembler but Aztec 3.4
If you wish to use another assembler, you must make the needed changes.
"Quit" - Selecting this menu item will return you to the same place that
SpriteWiz was called from (CLI or Workbench). You may also quit SpriteWiz
by selecting the close gadget in the upper left hand corner of the screen.
Under the "Edit" menu are the following items :
"Flip" - This menu item has two sub-items associated with it :
(1) X Axis - Selecting this sub-item will flip the current edit sprite
on the X Axis. If you are unfamiliar with mathematics, this option will
flip the sprite image vertically.
(2) Y Axis - Selecting this sub-item will flip the current edit sprite
on the Y Axis. If you are unfamiliar with mathematics, this option will
flip the sprite image horizontally.
When one of the "Flip" options is selected, the current sprite will be
re-calculated on the edit grid.
"Clear" - Selecting this menu-item will clear sprite image data. Note
that this item is in bold text and has the ability to work on multiple
sprite images. If your edit sprite is within the currently selected
range, the sprite image will be erased and the edit grid will clear.
"Reset" - Selecting this menu-item will reset sprite colors to the default
colors (Red, Green, and Blue). Again, since this item is in bold text, it
has the ability to work on multiple sprite images. If your edit sprite
is within the currently selected range, several changes take place.
For example, assume the current pen color is COL1 and this color gadget
shows yellow. When the "Reset" option is selected, the following happens :
(1) The color select gadgets change to the default colors. Thus, the
COL1 gadget changes to red.
(2) The current drawing color indicator is reset to red.
(3) Any dots on the edit grid (And in the edit sprite) that are drawn in
in COL1 are set to red.
(4) The RGB gadgets are set to the values that determine the color red.
"Negate" - This menu item will perform an exclusive-or on the current
edit sprite image. Each sprite color is determined by a pair of bits.
'00' - This combination determines COL0.
'01' - This combination determines COL1.
'10' - This combination determines COL2.
'11' - This combination determines COL3.
Performing an exclusive-or with pattern '11' has the following results :
Before After Result
------ ----- -------
00 11 All COL0 dots become COL3 dots.
01 10 All COL1 dots become COL2 dots.
10 01 All COL2 dots become COL1 dots.
11 00 All COL3 dots become COL0 dots.
Please see the Amiga hardware manual for a more detailed description.
Under the "Mode" menu are the following items :
(1) Current
(2) All
(3) From
(4) Up to
(5) Except
Selecting any one of these will set the range for any menu items that are
in bold text. The mode indicator in the lower left hand screen always
indicates what the current range is.
Under the "Animate" menu are the following items :
"Define" - Selecting this memu item will allow you to define an animation
sequence. When you enter your seqeunce, each frame must be referred to
by the sprite number. That is, when you enter your sequence, the only
valid characters are 'A' through 'Z'. Both upper and lower case letters
are accepted, as all input is converted to upper case. Do not try to enter
an invalid character. Once again, SpriteWiz contains very extensive error
checking and will inform you of any errors.
"Start" - Selecting this menu item is one of the neatest parts of SpriteWiz.
Basically, it will set the intuition pointer to each sprite that you have
defined in your animation sequence. Not only does the image of the pointer
change, but the colors change as well. As the animation sequence is being
run through, you are free to move the mouse around. Please note that the
pointer is not "active" when the animation sequence is being shown.
That is, you cannot select any gadgets or use the menus while SpriteWiz
is performing your animation sequence. To exit the animation sequence,
press the left mouse button. When the left mouse button is depressed, the
pointer changes back to it's default imagry and colors. The speed at
which the animation sequence is performed depends on where the speed gadget
is currently positioned. Before you can "Start" an animation sequence, you
must "Define" one. SpriteWiz will inform you if an animation sequence has
not been entered.
Errata and general fun stuff :
You might notice that several menu items are not active.
Under the "Save As" menu, the "Modula II" and "Basic" options are ghosted.
Under the "Mode" menu, the "Range" option is disabled.
These options are reserved for future releases of SpriteWiz.
When SpriteWiz first loads up, the imagry of the default intuition pointer
is calculated on the edit grid. This becomes your current edit sprite.
You can erase this image by selecting menu option "Clear".
The colors for the edit sprite are set to the default colors of Red, Green,
and Blue. The real pointer colors do not change.
The default range mode is "CURRENT" (See discussion above).
Default buffer imagry is blank. Colors are set to Red, Green, and Blue.
The text that is displayed in information and error requester gadgets
changes every so often. Do not be alarmed by this, I planned it to be
that way. For example, try to "Start" an animation sequence without first
entering one. You might get a different gadget message each time.
Once in a while, it will appear that the repeat gadgets continue without
your intervention. This is really not a program bug, but is caused by
all the refreshing, updating, testing and caculating that needs to be
done. Intuition does not offer anything called a repeat gadget. I had to
develop my own code to make them work like repeat gadgets. Unfortunately,
it would seem that sometimes my code is not fast enough to keep up with all
the IntuiMessages (See intuition manual) that are coming in.
If this happens, keep selecting the offending gadget until it stops.
David A. Visage
7371 Power Inn Road #106
Sacramento, CA. 95826
Also by David Visage - Mind Expander (With full C source)
Disk Wizard V1.0
Availble on finer B.B.S systems
GET THE MESSAGE!