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.
222 lines
5.7 KiB
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
|
|
}
|