Jump to content

  • Log In with Google      Sign In   
  • Create Account

sprite creation


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 ARCHIGAMER   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 01:14 PM

I was wondering if anyone would tell me how to make a animated 2d sprite? Thanks in advanced

Sponsor:

#2 Cloxs   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 01:51 PM

You create several frames of animation, and load them in an order when you display them. That way it looks like it''s moving. It''s kind of like the way movies work (almost exactly alike).

#3 Cloxs   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 01:51 PM

You create several frames of animation, and load them in an order when you display them. That way it looks like it''s moving. It''s kind of like the way movies work (almost exactly alike).

#4 Cloxs   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 01:52 PM

You create several frames of animation, and load them in an order when you display them. That way it looks like it''s moving. It''s kind of like the way movies work (almost exactly alike).

#5 Cloxs   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 01:52 PM

Sorry about responding so many times, I clicked twice because it didn''t load, and then i don''t know where the third came from.

#6 raulf   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 02:30 PM

The best way to do it, is to render each image in separated files, then you can create some classes to store them and to do the animation. Take a look in the following pseudocode:

//Store the image itself. First you''ll have to create a
//function to read each image file and then store it into
//the surface

typedef struct IMAGE
{
int ID; //For identification
DDSURFACE* Image; //The bitmap data
}

//Here you should create the animation sequence

typedef struct ANIMATION
{
int ID; //For identification
//1 may be walk to left, 2 walk to
// right, etc.

char[8] Sequence; //Assuming that each animation
//will have only 8 images
IMAGE* Images; //The images for the animation
}

class CSoldierSprite
{
public:
enum MOVEMENTS {WALK_LEFT, WALK_RIGHT, JUMP};

private:

ANIMATION WalkLeft, WalkRight, Jump;
int x, y; //For screen location

public:
BOOL LoadAnimations(void); //Here you load the data
void PlayAnimation(int WhichOne); //Here you tell to
// the function to
//play your animation

}

It''s very simple, I didn''t have the time to give you some real sample, but I think you got the idea.

You can improve the code by creating only one movement for each entity (pointers to), so you can share the same images with more of one entity at the same time (for example, if you have 5 soldiers, you load the data once, then you use this data with each soldier entity).

It can be even better. You can implement some kind of script engine for the animations, so you can pass the sequences for the engine and then it will play the images according with the parameters.

If you have doubts, mail me. Will be a pleasure if I could help you.

Regards,

Raul.




#7 TUna   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 March 2000 - 04:57 PM

It''s better to put them all in one file and then just change the X,Y co-ords. I normally just have all images in one long line and change the X co-ordinate. This saves on memory because you don''t have to have each images DDSurface information in ram, just one image. And loading from disk is much faster too. It also saves on the number of files you have and it more inituative than man1.bmp, man2.bmp etc etc...

#8 joew   Crossbones+   -  Reputation: 3679

Like
Likes
Like

Posted 02 March 2000 - 08:36 PM

Actually, putting them in seperate files is a waste and a pain. It is best to make a film strip sort of graphic and read them in and change the states. Remember to have an alpha channel because you don''t want a big block walking around with your character :-) You should make a seperate sprite format with the graphic film strip and a header and other information, if you are going to change states (ie walking, running, etc..) Anyways, enough for now.

Joe Woynillowicz
Isolation Studios

#9 ARCHIGAMER   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 March 2000 - 12:29 AM

As i see you all have different ways to do this.loading from disk sounds neat then my game could be highly customizeable which has been a suggestion for my game.That''s one of the reason I used to play Re-volt where if you didnt want a car you can trash it or modify it.
thnaks for your tips




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS