Give this sprite a name. This way we can make a duplicate of it by specifying the name. The idea behind sprites
is that you want to be able to have multiple of the same things (for most sprites). For example, you want to make
an asteroid Sprite, and then send twenty of them bouncing around on the screen.
The best way to do this is to create a "Named Sprite", which you use as a template. From that point onward,
you create a duplicate of that sprite. So the Named Sprite never gets used, it sits there as something that gets
duplicated every time you want one.
DuplicateSprite(String) is the function
you usually use to duplicate a sprite.
Namespace:
SpriteLibrary
Assembly:
SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.6 (1.0.0.6)
Syntaxpublic void SetName(
string Name
)
Parameters
- Name
- Type: SystemString
A string that represents the new name of the sprite
Examples
Give this sprite a name. This way we can make a duplicate of it by specifying the name. The idea behind sprites
is that you want to be able to have multiple of the same things (for most sprites). For example, you want to make
an asteroid Sprite, and then send twenty of them bouncing around on the screen.
The best way to do this is to create a "Named Sprite", which you use as a template. From that point onward,
you create a duplicate of that sprite. So the Named Sprite never gets used, it sits there as something that gets
duplicated every time you want one.
DuplicateSprite(String) is the function
you usually use to duplicate a sprite.
This example shows how we create a "Named Sprite", which we do not put on the screen. But instead, we
make a duplicate of the sprite, which we send shooting off to destroy the enemy. This example is a little
misleading. You only need to create the Named Sprite once. From that point in time, you can duplicate the
Named Sprite to get another copy of it.
Sprite MissileSprite = new Sprite(new Point(0, 300), MySpriteController, Properties.Resources.missiles, 100, 100, 220, 4);
MissileSprite.SetName("Missile");
MissileSprite.SetSize(new Size(50,50));
Sprite NewSprite = MySpriteController.DuplicateSprite("Missile");
NewSprite.AutomaticallyMoves = true;
NewSprite.PutBaseImageLocation(new Point(startx, starty));
NewSprite.MoveTo(TargetSprite);
NewSprite.MovementSpeed = speed;
There are two related concepts. You may want to read up on
LinkControllersForSpriteTemplateSharing(SpriteController)
to let multiple SpriteControllers look up named Sprites from each-other. You can also read up on the
SpriteDatabase, which allows you
to define NamedSprites in a database; the SpriteControllers can access the database instead of needing to do an
initial "new Sprite(....);" to create your Sprite Template.
See Also