Jump to content


Smash bros type launching algo


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

#1 3DModelerMan

    Member

  • Members
  • PipPip
  • 79 posts

Posted 05 November 2008 - 06:47 PM

Hey I was wondering what you guys had to say about this.
How did they do the launching in smash bros?. I can't seem to get it to work in my little demo, should I have them launch for only a certain amount of time depending on their damage?, or only a certain distance?.
Thanks:happy: .
Lightspeed compilers are to slow...we need LUDICROUS SPEED!!!

#2 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 05 November 2008 - 10:16 PM

ehhh, well sounds cool but we could probably help more if you posted some code :)

I think it's really just rasing the velocity of the launch linear to the amount of damage they take. You shouldn't have to change other aspects of the physics.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#3 alphadog

    DevMaster Staff

  • Moderators
  • 1641 posts

Posted 06 November 2008 - 03:07 PM

What is "the launching"? (Sorry, never played Smash Bros.)

To me, it sounds like the next Night Shyamalan movie... :huh:

#4 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 06 November 2008 - 03:08 PM

alphadog said:

What is "the launching"?
To me, it sounds like the next Night Shyamalan movie... :)
Vwat a twist!
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#5 3DModelerMan

    Member

  • Members
  • PipPip
  • 79 posts

Posted 06 November 2008 - 03:50 PM

Quote

What is "the launching"? (Sorry, never played Smash Bros.)
The higher your damage the easier it is to launch your oponent out of the screen and K.O them. But anyway I will install a physics engine and get everything setup and working then.
Lightspeed compilers are to slow...we need LUDICROUS SPEED!!!

#6 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 06 November 2008 - 06:34 PM

well, I mean, we really can't specificly help you because you're not telling us exactly how you plan to implement this. Off the top of my head:

LaunchSpeed = PowerOfAttack * Direction + log(DamagePercent + 1) * Direction * (pow(PowerOfAttack, 2)* .07);

I'm just pulling that out of my ass and basing it off what I've seen of the smashbros damage system. Obviously it's not totally accurate but it should give you a vauge resemblance of the launch patterns.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#7 3DModelerMan

    Member

  • Members
  • PipPip
  • 79 posts

Posted 06 November 2008 - 11:03 PM

Thanks, a vauge resemblance is all I really need anyway.
Lightspeed compilers are to slow...we need LUDICROUS SPEED!!!

#8 alphadog

    DevMaster Staff

  • Moderators
  • 1641 posts

Posted 07 November 2008 - 01:27 PM

Well, your own "launching" could be designed from simple kinetics and transfer of a force to a body, where the damage caused is an indicator of the "strength" of the force. Basically, start from an elastic collision and move from there...

#9 imerso

    Senior Member

  • Members
  • PipPipPipPip
  • 428 posts
  • LocationBrasil

Posted 08 November 2008 - 12:31 AM

Have you already implemented some sort of gravity into your characters?

Gravity is quite simple to implement, you just insert a property for vertical increment, like:


class Sprite

{

  float iy;   // vertical increment

  float px, py;  // sprite position

  ... other properties, etc

}


then, at each step of your character updating, you do something like:


sprite.iy += GRAVITY; // GRAVITY = some small value, like 0.8f

sprite.py += sprite.iy; // here you update sprite vertical position


// check if it reaches ground (simplistic)

if (sprite.py > SCREEN_HEIGHT)

{

  // prevents from falling out of screen

  sprite.py = SCREEN_HEIGHT;


  // you can give the sprite a bounce if you wish:

  sprite.iy *= -0.5f;  // (nice bouncing!)

}


There were some details left for you to implement, but this is a basic gravity algorithm that works nicely.

#10 3DModelerMan

    Member

  • Members
  • PipPip
  • 79 posts

Posted 08 November 2008 - 03:00 PM

Yeah gravity is easy, and my engine just lets me set the gravity on my objects anyway.
Lightspeed compilers are to slow...we need LUDICROUS SPEED!!!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users