Making Player/Monster with Unlimited Animation Abilities

A place for The Mana World players to discuss game-related topics outside the scope of development including guilds, player interactions, game meta and more.


Post Reply
User avatar
iamWayne
Novice
Novice
Posts: 55
Joined: 27 Sep 2009, 14:00

Making Player/Monster with Unlimited Animation Abilities

Post by iamWayne »

just a sugestions :
i'm putting some thaughts on paper which i have in mind for a long time.
i'm thinking of making a dynamic class which expand to capabilities of the Being Class:
example an object on a map can be taught or forget a skill.

example:
teaching a player how to dance;

below i tried to simplified with an example of making a male player adapts a new skill by teaching him an action Sprite when ingrav is activated.



in this example, i'll be registering a new animation to ingrav spell when a player uses the spell, rather than the default attack being display or none at all.
without changing much to the system, just adding a few images and telling the computer what to do with them.

ok, here begin:

within the Player Class , it contains

sample algorithm // demo in c++

Animated_Sprite *sprite = new Animated_Sprite();
...// adding appropriate image to each animated sprite
..// setting delay per frames

..//declare a state being manager, which can assign new state animation for all beings
..// now add animated sprite to the Static State_Being_Manager and reference

state_id = ACTION_DEFINED & 1;


STATEMANAGER::RegisterNewState("male_walk_sprite" , sprite ,state_id );
STATEMANAGER::RegisterNewState("male_front_arrow_sprite" , sprite , state_id++ );
STATEMANAGER::RegisterNewState("male_walk_left_sprite" , sprite , ACTION_DEFINED & 3 );
STATEMANAGER::RegisterNewState("male_walk_north" , sprite , ACTION_DEFINED & 4 );
..... /// rather to avoid overwritten of other states STATEMANAGER::GetNextInt();
STATEMANAGER::RegisterNewState("male_magic_ingrav" , sprite , id );

//deciding which state to choose
//if predefine state is not found then

...
if( ! iStateFound && (being->getAction() & ACTION_DEFINED) )
{
Animated_Sprite *sprite = STATEMANAGER::getState( being->getAction() );
if( sprite)
{
//make this sprite play as animation
}
}
Attachments
a sprite with an example
a sprite with an example
example_sprite.JPG (43.31 KiB) Viewed 571 times
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Re: Making Player/Monster with Unlimited Animation Abilities

Post by Crush »

I believe it's better to keep the animations soft-coded in the animation files for each sprite. But I agree that the system needs more flexibility to allow arbitary animations for special attacks, for example.

I would rather look into ways to define new animations with arbitary action names in the animation xml files and look into ways to call them server-sided.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
Post Reply