Bluetail7
Member
GM Version: Game Maker Studio 1
Target Platform: ALL
Download: N/A
Links: N/A
Summary:
In this tutorial I will explain the basic things you need to know to make animation smooth and easy to read.
Using a single sprite with many subimages
Tutorial:
Greetings everyone! In this tutorial I will tell you some basic rules when coding in GMS
Now into the code itself
lets say we have a sprite with the following
Now to the action!
first: character's properties (using some basic movement functions)
2nd: the code itself
Target Platform: ALL
Download: N/A
Links: N/A
Summary:
In this tutorial I will explain the basic things you need to know to make animation smooth and easy to read.
Using a single sprite with many subimages
Tutorial:
Greetings everyone! In this tutorial I will tell you some basic rules when coding in GMS
- Don't loop any function that affects your visuals: sprite_index, image_index (if not using relatives)
- Chain the sprite with the character's movement, then keys pressed, not the opposite!
- Always check if the animation isn't running, so you won't make it look awkward/interrupt when pressing that button again.
- Check code's position!! It matters a lot as you may soft lock the animation itself.
- Just a preference: create variables for things that the character rarely does: combos, automatic movements that block some user input, so you can use it in the animation core.
- Another preference: use animations outside core gameplay.
- Create event
- Step event
- Key pressed (often for quick time events)
- Key press (recommended for most animations)
- Key released (sometimes used to throw or shoot bullets)
- Animation end
Now into the code itself
lets say we have a sprite with the following
Code:
frame 0 = idle
frames 1-3 = walk cycle
frame 4 = start jump
frame 5 = middle jump
frame 6 = falling
frames 7-10 = sword attack 1
frames 10-15 = sword atk 2
frames 15-23 = sword atk 3
first: character's properties (using some basic movement functions)
Code:
functions:
hspeed
vspeed
image_index
image_speed
variables:
combo
can_jump
Code:
//STEP EVENT: Gameplay
if (keypressed) //ATTACK
{
if (canjump)
{
if (img_index >= 9 && img_index <= 10 || img_index >= 13 && img_index <= 15)
{if (keypressed) {combo++;}}
else
if (!combo) //Not in combo mode
{
if (keypressed && combo < 3)
{
//change index to skip to the first frame
combo++;
img_speed = 0.5;
img_index = 7;
}
}
}
}
if (keypressed) //JUMP
{
if (canjump && !combo)
{
vspeed = -8;
can_jump--;
img_speed = 0;
}
}
Code:
//STEP EVENT: Animation core
if (can_jump) //is on ground
{
//COMBO
if (combo > 0)
{
//you can use a switch too
if (combo == 3) {if (img_index == 23) {combo = 0;}}
else
if (combo == 2) {if (img_index == 15) {combo = 0;}}
else
if (combo) {if (img_index == 10) {combo = 0;}}
if (vspeed!=0) {combo = 0;} //stop combo if in mid air
}
else
//IDLE
if (hspeed == 0) {img_index=0; img_speed = 0;}
else
//WALK
{
if (img_index < 1 || img_index > 3) {img_index = 1;}
image_speed = 0.5;
}
}
else
//IS JUMPING
{
//this is what I normally do with 3 frames jump
img_index = Middle jump + sign(vspeed);
combo = 0; //just in case you fall from an edge
}
Last edited: