X
xilian7125
Guest
hello, its me again! i keep having problems. im following shaun spalding's melee tutorial and i cant attack? the game turns on but it wont attack when i press z. and when i turn left it stays facing left, even if i go right.
here is ALL my code for player
create
step
playerstate_free
playerstate_attack
im sorry its a lot i just want yall to have all the info
here is ALL my code for player
create
Code:
hsp = 0;
vsp = 0;
grv = 0.4;
walksp = 8;
state = PLAYERSTATE.FREE
hitbyattack = ds_list_create();
enum PLAYERSTATE
{
FREE,
ATTACK_SLASH,
ATTACK_COMBO
}
Code:
//player input (check for correct symbols)
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);
key_jump = keyboard_check_pressed(vk_up);
key_attack = keyboard_check_pressed(ord("z"))
switch (state)
{
case PLAYERSTATE.FREE: PlayerState_Free(); break;
case PLAYERSTATE.ATTACK_SLASH: PlayerState_Attack_Slash(); break;
case PLAYERSTATE.ATTACK_COMBO: PlayerState_Attack_Combo(); break;
}
Code:
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv;
if (place_meeting(x,y+1,grass_obj)) && (key_jump)
{
vsp = -10;
}
//horizontal collision
if (place_meeting(x+hsp,y,grass_obj))
{
while (!place_meeting(x+sign(hsp),y,grass_obj))
{
x = x + sign(hsp);
}
hsp = 0;
}
x = x + hsp;
//vertical collision
if (place_meeting(x,y+vsp,grass_obj))
{
while (!place_meeting(x,y+sign(vsp),grass_obj))
{
y = y + sign(vsp);
}
vsp = 0;
}
y = y + vsp;
//animation
if (!place_meeting(x,y+1,grass_obj))
{
sprite_index = jumpR;
image_speed = 0;
if (sign (vsp) > 0) image_index = 1; else image_index = 0;
}
{
image_speed = 1;
if (hsp == 0) and key_right = keyboard_check(vk_right)
{
sprite_index = sPlayerR;
}
if (hsp == 8) and key_right = keyboard_check(vk_right)
{
sprite_index = sPlayerWR;
}
if (hsp == -8) and key_left = keyboard_check(vk_left)
{
sprite_index = sPlayerWR;
image_xscale = sign(hsp)
}
}
if (key_attack)
{
state = PLAYERSTATE.ATTACK_SLASH;
}
Code:
hsp = 0;
vsp = 0;
//start of the attack
if (sprite_index != sAttack_slash)
{
sprite_index = sAttack_slash;
image_index = 0;
ds_list_clear(hitbyattack);
}
mask_index = sAttack_slashHB;
var hitByAttackNow = ds_list_create();
var hits = instance_place_list(x,y,vanta_portal_obj,hitByAttackNow,false);
if (hits > 0)
{
for (var i = 0; i < hits; i++)
{
var hitID = hitByAttackNow[| i]
if (ds_list_find_index(hitbyattack,hitID) == -1)
{
ds_list_add(hitbyattack,hitID);
with (hitID)
{
EnemyHit(2);
}
}
}
}
ds_list_destroy(hitByAttackNow);
mask_index = sPlayerR;
if (animation_end())
{
sprite_index = sPlayerR;
state = PLAYERSTATE.FREE;
}