M
MagicFool64
Guest
I need help for a script: i'm starting with a test for a future HnS Platformer game (first I make a test, then I will make a game about). My character is supposed to attack both when is on the floor, and when in jumping. The problem: when I start the game, the code doesn't work correctly
Here is the script:
where did I go wrong?
Here is the script:
Code:
//Create Event
image_index = 0;
image_speed = 0;
hsp = 0;
vsp = 0;
grv = 0.3;
walksp = 3;
attack = 0
//Step Event
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);
key_jump = keyboard_check_pressed(vk_up);
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv;
if (place_meeting(x,y+1,obj_wall)) && (key_jump)
{
vsp = -7;
}
if (place_meeting(x+hsp,y,obj_wall))
{
while (!place_meeting(x+sign(hsp),y,obj_wall))
{
x = x + sign(hsp);
}
hsp = 0
}
x = x + hsp;
if (place_meeting(x,y+vsp,obj_wall))
{
while (!place_meeting(x,y+sign(vsp),obj_wall))
{
y = y + sign(vsp);
}
vsp = 0
}
y = y + vsp;
if (!place_meeting(x,y+1,obj_wall))
{
sprite_index = spr_jump;
image_speed = 0;
}
else
{
if (hsp == 0)
{
sprite\_index = spr\_walka;
image\_speed = 0;
}
else
{
sprite\_index = spr\_walk;
image\_speed = 1;
}
}
if (hsp = -3)
{
image_xscale = -1
}
else if (hsp = 3)
{
image_xscale = 1
}
kShoot = keyboard_check_pressed(ord("X"));
if (kShoot) {
attack=1
}
if(place_meeting(x,y+1,obj_wall)){
grounded = true
}else{
grounded = false
}
if(grounded){
if attack==1 {
sprite_index = spr_attack;
hsp = 0;
image_speed = 1;
} else {
sprite_index = spr_walk
}
} else {
if attack==1 {
sprite_index = spr_attack_jump;
image_speed = 1;
} else {
sprite_index = spr_jump
}
}
//Animation End Event
if sprite_index = spr_attack_jump
{
sprite_index = spr_jump;
}
else if sprite_index = spr_attack
{
sprite_index = spr_walk;
}