You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Turbo-X-Horde-AM2R/Export_Code/gml_Script_chStepSpiderBall...

222 lines
5.7 KiB

if (state == SPIDERBALL)
{
xVel = 0
yVel = 0
sbstate = 0
edgedl = position_meeting((x - 7), (y + 1), oSolid)
edgedr = position_meeting((x + 7), (y + 1), oSolid)
edgeul = position_meeting((x - 7), (y - 15), oSolid)
edgeur = position_meeting((x + 7), (y - 15), oSolid)
if (isCollisionBottom(0) == 1)
y -= 1
if (isCollisionTop(0) == 1)
y += 1
if (isCollisionLeft(0) == 1)
x += 1
if (isCollisionRight(0) == 1)
x -= 1
if ((isCollisionBottom(1) == 1 || isCollisionPlatformBottom(1) == 1) && isCollisionRight(1) == 0 && isCollisionLeft(1) == 0)
sbstate = 1
if (isCollisionRight(1) == 1 && isCollisionBottom(1) == 0 && isCollisionTop(1) == 0)
sbstate = 2
if (isCollisionTop(1) == 1 && isCollisionRight(1) == 0 && isCollisionLeft(1) == 0)
sbstate = 3
if (isCollisionLeft(1) == 1 && isCollisionBottom(1) == 0 && isCollisionTop(1) == 0)
sbstate = 4
if (isCollisionBottom(1) == 1 && isCollisionRight(1) == 1)
sbstate = 5
if (isCollisionTop(1) == 1 && isCollisionRight(1) == 1)
sbstate = 6
if (isCollisionTop(1) == 1 && isCollisionLeft(1) == 1)
sbstate = 7
if (isCollisionBottom(1) == 1 && isCollisionLeft(1) == 1)
sbstate = 8
if (isCollisionBottom(1) == 0 && isCollisionLeft(1) == 0 && isCollisionRight(1) == 0 && isCollisionTop(1) == 0)
{
if (edgedl == 1 && edgeul == 0 && edgeur == 0 && edgedr == 0)
sbstate = 9
if (edgeul == 1 && edgedl == 0 && edgeur == 0 && edgedr == 0)
sbstate = 10
if (edgeur == 1 && edgedl == 0 && edgeul == 0 && edgedr == 0)
sbstate = 11
if (edgedr == 1 && edgedl == 0 && edgeul == 0 && edgeur == 0)
sbstate = 12
if (edgedl == 1 && edgeul == 0 && edgeur == 0 && edgedr == 1)
sbstate = 1
if (edgedl == 0 && edgeul == 0 && edgeur == 1 && edgedr == 1)
sbstate = 2
if (edgedl == 0 && edgeul == 1 && edgeur == 1 && edgedr == 0)
sbstate = 3
if (edgedl == 1 && edgeul == 1 && edgeur == 0 && edgedr == 0)
sbstate = 4
}
if (sbstate == 0)
{
state = AIRBALL
sball = 1
}
if (kRight > 0 && sbmove == 0)
{
if (sbstate == 1)
sbmove = 1
if (sbstate == 3)
sbmove = -1
if (sbstate == 5)
sbmove = 1
if (sbstate == 6)
sbmove = -1
if (sbstate == 7)
sbmove = -1
if (sbstate == 8)
sbmove = 1
if (sbstate == 9)
sbmove = 1
if (sbstate == 10)
sbmove = -1
if (sbstate == 11)
sbmove = -1
if (sbstate == 12)
sbmove = 1
}
if (kLeft > 0 && sbmove == 0)
{
if (sbstate == 1)
sbmove = -1
if (sbstate == 3)
sbmove = 1
if (sbstate == 5)
sbmove = -1
if (sbstate == 6)
sbmove = 1
if (sbstate == 7)
sbmove = 1
if (sbstate == 8)
sbmove = -1
if (sbstate == 9)
sbmove = -1
if (sbstate == 10)
sbmove = 1
if (sbstate == 11)
sbmove = 1
if (sbstate == 12)
sbmove = -1
}
if (kUp > 0 && sbmove == 0)
{
if (sbstate == 2)
sbmove = 1
if (sbstate == 4)
sbmove = -1
if (sbstate == 5)
sbmove = 1
if (sbstate == 6)
sbmove = 1
if (sbstate == 7)
sbmove = -1
if (sbstate == 8)
sbmove = -1
if (sbstate == 9)
sbmove = -1
if (sbstate == 10)
sbmove = -1
if (sbstate == 11)
sbmove = 1
if (sbstate == 12)
sbmove = 1
}
if (kDown > 0 && sbmove == 0)
{
if (sbstate == 2)
sbmove = -1
if (sbstate == 4)
sbmove = 1
if (sbstate == 5)
sbmove = -1
if (sbstate == 6)
sbmove = -1
if (sbstate == 7)
sbmove = 1
if (sbstate == 8)
sbmove = 1
if (sbstate == 9)
sbmove = 1
if (sbstate == 10)
sbmove = 1
if (sbstate == 11)
sbmove = -1
if (sbstate == 12)
sbmove = -1
}
if (kRight == 0 && kLeft == 0 && kUp == 0 && kDown == 0)
sbmove = 0
if (sbstate == 1)
x += sbmove
if (sbstate == 2)
y -= sbmove
if (sbstate == 3)
x -= sbmove
if (sbstate == 4)
y += sbmove
if (sbstate == 5)
{
if (sbmove == 1)
y -= 1
if (sbmove == -1)
x -= 1
}
if (sbstate == 6)
{
if (sbmove == 1)
x -= 1
if (sbmove == -1)
y += 1
}
if (sbstate == 7)
{
if (sbmove == 1)
y += 1
if (sbmove == -1)
x += 1
}
if (sbstate == 8)
{
if (sbmove == 1)
x += 1
if (sbmove == -1)
y -= 1
}
if (sbstate == 9)
{
if (sbmove == 1)
y += 1
if (sbmove == -1)
x -= 1
}
if (sbstate == 10)
{
if (sbmove == 1)
x -= 1
if (sbmove == -1)
y -= 1
}
if (sbstate == 11)
{
if (sbmove == 1)
y -= 1
if (sbmove == -1)
x += 1
}
if (sbstate == 12)
{
if (sbmove == 1)
x += 1
if (sbmove == -1)
y += 1
}
}
if (state == AIRBALL && sball == 1)
{
if (isCollisionTop(1) == 1 || isCollisionBottom(1) == 1 || isCollisionRight(1) == 1 || isCollisionLeft(1) == 1)
state = SPIDERBALL
}