voivi un petit tutorial ecrit par moi, espliquant comment faire des animations en a-rpg.(vous pouvez l'adapter en a-rpg)
faites en l'usage que vous voudrez. il est fait pour des animations a 4 directions, mais rien ne vous empeche de l'ameliorer!
1-Les variables a utiliseralors... vous aurez plusieurs variables a utiliser pour les A-RPGs, et une seule pour les RPGs.
tout d'abord, sachez comme le plus simple pour les mouvements est d'utiliser les variables hspeed et vspeed, et qque ces variables font buguer la variable direction, on cree notre propre variable direction.
nomez la par exemple
directionpensuite, pour les A-RPGs, creez les variables attack et guard(en bolleene). vous vous doutez pourquoi, non?
2-les deplacements et les actionsPour la guarde et l'attaque, faites
et dedans, en modifinant de false a true la variable concernée.
ensuite, faut faire que l'action s'arrete, non? et que le perso ne bouge plus!
pour arreter la guarde, faites
et passez la variable guard de true a false
pour l'attaque, faites dans l'event animation end:
- Code:
-
if attack=true then attack=false.
pour les deplacements, il faut metre ceci:
- Code:
-
if attack=false and guard=false then directionp=<la direction, en chifre>
faites les key releases pour que le perso s'arrete et voila!
c'est tout simple, non? vous avez pas compris? pas grave!
3-Les animationalors, là, on attaque l'un des plus gros morceaux... courage!
deja, espliquons. le principe va etre de creer 4 grandes conditions, chaqunes avec 4 conditions a l'interieur. voici le codage!
(step)
- Code:
-
if attack=false and guard=false and speed=0 //si le perso est immobile et ne fais rien
{
if directionp=0 then sprite_index=sprite_stand_right
if directionp=90 then sprite_index=sprite_stand_up
if directionp=180 then sprite_index=sprite_stand_left
if directionp=270 then sprite_index=sprite_stand_down
}
if attack=false and guard=false and speed>0 //si le perso marche
{
if directionp=0 then sprite_index=sprite_walk_right
if directionp=90 then sprite_index=sprite_walk_up
if directionp=180 then sprite_index=sprite_walk_left
if directionp=270 then sprite_index=sprite_walk_down
}
if attack=true //si le perso attaque
{
if directionp=0 then sprite_index=sprite_attack_right
if directionp=90 then sprite_index=sprite_attack_up
if directionp=180 then sprite_index=sprite_attack_left
if directionp=270 then sprite_index=sprite_attack_down
}
if guard=true //si le perso defend
{
if directionp=0 then sprite_index=sprite_guard_right
if directionp=90 then sprite_index=sprite_guard_up
if directionp=180 then sprite_index=sprite_guard_left
if directionp=270 then sprite_index=sprite_guard_down
}
voila! ouf!
4-les combatset bien... hum... vous permetez que.. j'aille chercher un truc a l'aeroport?*sort* *bruit d'avion* *entre*
bon, ben, faites un event collision contre un enemi.
dedans, metez
- Code:
-
var xcollpoint , ycollpoint /on definie 2 variables
if direction=0 {xcollpoint= ycollpoint=0}
if direction=90 {xcollpoint=0 ycollpoint=- }
if direction=180 {xcollpoint=- ycollpoint=0}
if direction=270 {xcollpoint=0 ycollpoint= }
//on definie leur valeur
if attack=true
{
if collision_point(x xcollpoint,y ycollpoint,enemi,true,true) then with(instance_nearest(x,y,enemi))instance_destroy else <votre action> //si l'enemi se trouve en face du joueur en train d'attaquer
}
if guard=true
{
if not collision_point(x xcollpoint,y ycollpoint,enemi,true,true) then
} //si l'enemi se trouve en face du joueur en train de defendre
if guard=false and attack=false then <votre action> /si le joueur a pas vu venir l'enemi
}
et voila!
j'espere que ce tuto vous sera utile, et si vous l'utilisez, veuillez metre mon pseudo dans les credits.