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 }