To put it bluntly, I am stumped.
When the character is dashing, or jumping after dashing, a trail of two/three dash shadows are created behind the character. These dash shadows have these particular behaviors:
+When created, one dash shadow would be created after the next (in timely offsets) until three exist. +Dash shadows have identical sprites to the main character, however -- the farther shadow, the more time it takes for the image indexes to match. +Dash shadows follow the main character and match his movement until the character changes to a particular stance (ex: while standing or wall sliding) +When the character changes to that stance, the trail of shadows move to his exact position and disappear when changing to that stance as well. EDIT: Another thing is that dash shadows are colorized and blended to one color. Therefore, I'm not interested in transparency fading.
Similar effect behaviors, to my knowledge are used with dashing smokes in Megaman Zero or Megaman X. A trail of four smokes are created, but when a character is not dashing or wall sliding, these smokes unite at a certain position and disappear afterward.
To those unfamiliar with the Megaman games, please refer to a gameplay example of either game (Megaman Zero recommended) on youtube. There are also examples found in the Game Maker site, if one can find a good Megaman Zero/ZX-style demo. Dashing is a very fundamental mechanic implemented and used/abused in these games, so I will refrain from providing a specific link unless if requested with good reason.
Thanks for your time. All help is appreciated. :)
UPDATE (4/14/10) The issue has been solved. Two separate implementations have been created as a result of this thread, and that is Khelder's and mine's. So if one wants to create these dashing shadows without the use of a draw_sprite method, read on...
Note: To view Khelder's method, scroll down and read the replies. Otherwise, you can also use mine, which involves creating a lot more instances, but less advanced logic. Alternatively, you can also use elements of both methods and see what works out for you.
For movement, basically what you do is have the character continuously create "markers" as he is dashing. When the player starts dashing, a shadow is also created, and after a specific amount of time, it starts moving towards those markers. When the shadow touches these markers, they are destroyed, kind of like Pac-Man on automatic. When the player reaches a certain stance and is in collision with the floor or the wall (depending on your stance, ex: standing or wall sliding), the shadow is destroyed.
To use multiple shadows, simply create them when the player starts dashing, only make their starting times different.
For colorizing them in GM8, do it by hand. At the creation of the shadow, set it to !visible and create another object to replace the sprite with a colorized sprite that you have edited on your own. Another alternative is to set their image_alpha values to a non-negative number less than 1 - this shadow effect is notably used in SNK's fighting games, as I have recently found out through playing Neo Geo Battle Colosseum.
Great thanks to the repliers of this thread for helping. All answers are just as helpful as mine.
Edited by shinyrockets, 14 April 2010 - 06:56 PM.