@Madscientist: That's kind of like the technique that I tried using but I'm not sure if it would be more effective to test for the color of the platform than the location. Thanks for the input though, I'll try it out and see if it helps.
Here's the code again with media attached.
/////////SYNC SCREEN////////////
sync on
sync rate 60
//set window position 0,0
//set window size desktop width(), desktop height()
///////////DEFINE ITLOOPS//////////
ITloop=0
ITloop2=0
///////////LOAD IMAGES///////////
Load Image "background.bmp", 1
Load Image "carlos.bmp", 2
Load Image "platform3.bmp", 4
Load Image "platform4.bmp", 5
Load Image "platform8.bmp", 6
Load Image "platform13.bmp", 7
Load Image "platform14.bmp", 8
Load Image "platform15.bmp", 9
Load Image "platform21.bmp", 10
Load Image "wall15.bmp", 11
Load Image "wall17.bmp", 12
Load Image "boxes2.bmp", 13
Load Image "boxes3.bmp", 14
Load Image "boxes5.bmp", 15
Load Image "boxes12x3.bmp", 16
Load Image "boxeswall2.bmp", 17
Load Image "coin.bmp", 18
Load Image "lives.bmp", 19
Load Image "score.bmp", 20
Load Image "fireturtle.bmp", 21
Load Image "fireball.bmp", 22
Load Image "redscreen.bmp", 23
Load Image "deathdragon.bmp", 24
Load Image "firebreath.bmp", 25
Load Image "fat elf.bmp", 26
Load Image "exclamation mark.bmp", 27
Load Image "phoenix.bmp", 28
Load Image "stegosaurus.bmp", 29
Load Image "dilophosaurus.bmp", 30
Load Image "poisonspit.bmp", 31
Load Image "tornado.bmp", 32
Load Image "tornadoeyes.bmp", 33
Load Image "gun.bmp", 34
Load Image "bow.bmp", 35
Load Image "bowandarrowpickup.bmp", 36
Load Image "bullet.bmp", 37
Load Image "arrow.bmp", 38
Load Image "bandit.bmp", 39
Load Image "banditgun.bmp", 40
load image "regularground.bmp",41
load image "underground.bmp",42
load image "boxground.bmp",43
load image "newmap.bmp",44
///////////CREATE SPRITE ANIMATIONS///////////
//main
Create Animated Sprite 1, "background.bmp", 1, 1, 1
Create Animated Sprite 2, "carlos.bmp", 15, 1, 2
Create Animated Sprite 8, "exclamation mark.bmp", 2, 1, 27
Create Animated Sprite 500, "bowandarrowpickup.bmp", 3, 1, 36
//platforms
Create Animated Sprite 11, "platform21.bmp", 1, 1, 10
Create Animated Sprite 12, "platform21.bmp", 1, 1, 10
Create Animated Sprite 13, "platform21.bmp", 1, 1, 10
//Create Animated Sprite 11, "platform3.bmp", 1, 1, 4
//Create Animated Sprite 12, "platform3.bmp", 1, 1, 4
//Create Animated Sprite 13, "platform3.bmp", 1, 1, 4
//Create Animated Sprite 14, "platform3.bmp", 1, 1, 4
//Create Animated Sprite 15, "platform21.bmp", 1, 1, 10
//Create Animated Sprite 16, "platform8.bmp", 1, 1, 6
//Create Animated Sprite 17, "platform4.bmp", 1, 1, 5
//Create Animated Sprite 18, "platform14.bmp", 1, 1, 8
//Create Animated Sprite 19, "platform13.bmp", 1, 1, 7
//Create Animated Sprite 20, "platform21.bmp", 1, 1, 10
//Create Animated Sprite 21, "platform15.bmp", 1, 1, 9
//Create Animated Sprite 22, "wall15.bmp", 1, 1, 11
//Create Animated Sprite 23, "wall17.bmp", 1, 1, 12
//Create Animated Sprite 24, "boxes12x3.bmp", 1, 1, 16
//Create Animated Sprite 25, "boxes3.bmp", 1, 1, 14
//Create Animated Sprite 26, "boxes5.bmp", 1, 1, 15
//Create Animated Sprite 27, "boxes2.bmp", 1, 1, 13
//Create Animated Sprite 28, "boxeswall2.bmp", 1, 1, 17
///////////CREATE SPRITE POSITION///////////
Sprite 1, -15, -15, 1
Sprite 2, 320, 240, 2
Sprite 3, 590, 10, 19
Sprite 4, 500, 10, 20
Sprite 5, 525, 10, 20
Sprite 6, 550, 10, 20
Sprite 7, 0, 0, 23
Set Sprite Alpha 7,0
Sprite 500, 5, 5, 36
Sprite 11, 0+scrollx#, 50+scrolly#, 12
Sprite 12, -300+scrollx#, 130+scrolly#, 12
Sprite 13, 500+scrollx#, 130+scrolly#, 12
/////////////VARIABLES///////////
//main
characterdirection as boolean
ifjumping as boolean
ifgravity as boolean
gobigorsmall as boolean
touchingtop as boolean
touchingbottom as boolean
touchingleft as boolean
touchingright as boolean
nogetlarge as boolean
smallwhendie as boolean
breakloop as boolean
overlappingplatform as boolean
characterdirection=1 //0=right 1=left
ifjumping=0 //0=notjumping 1=jumping
jumpcounter=0
howmuchjump=3
scrollx#=500
scrolly#=300
ifgravity=0 //0=notfalling 1=falling
gobigorsmall=0 //0=big 1=small
lives=30
score=0
touchingtop=0 //0=nottouching 1=touching
touchingbottom=0 //0=nottouching 1=touching
touchingleft=0 //0=nottouching 1=touching
touchingright=0 //0=nottouching 1=touching
finalx=0
finaly=0
charactery=0
nogetlarge=0
opendirectionfactor=0 //0=openright 15=openleft
smallwhendie=0 //0=big 1=small
healthregencounter=0
initialhealthregentimer=Timer()-11000
touchingplatform=0
scrollxstart#=0
scrollystart#=0
redscreenalpha=50
redscreenalphachange=1
characterinvulnerabilitytimer=Timer()-6000
characterinvulnerabilitycounter=0
farthestleftplatform=0
farthestrightplatform=0
platformdifference=1
breakloop=0
originalx=0
overlappingplatform=0
charplatcollidey=0
charplatcollidex=0
collision=0
vertcollide=0
horizcollide=0
//////////START GAME//////////
do
//////////SET START VARIABLES//////////
scrollxstart#=scrollx#
scrollystart#=scrolly#
ITloop=11
while ITloop<100
if sprite exist(ITloop)
if sprite collision(2, ITloop)=1
if sprite x(2)<=sprite x(ITloop)+sprite width(ITloop) //right
scrollx#=oldx
touchingright=1
endif
if sprite x(2)+sprite width(2)>=sprite x(ITloop) //left
scrollx#=oldx
touchingleft=1
//scrolly#=scrolly#-6//need outside of loop
endif
if oldy<scrolly# && sprite y(2)+sprite height(2)>=sprite y(ITloop)//bottom
scrolly#=oldy
touchingbottom=1
endif
if oldy>scrolly# && sprite y(2)<=sprite y(ITloop)+sprite height(ITloop)//top
scrolly#=oldy
touchingtop=1
endif
else
oldx=scrollx#
oldy=scrolly#
endif
endif
inc ITloop,1
endwhile
if touchingtop=0 && ifjumping=0
scrolly#=scrolly#-6
endif
//////////MOVING//////////
//right with attack
if RightKey() && SpaceKey()
if howattack=1
if Sprite Frame(2)>11 || Sprite Frame(2)<8
Set Sprite Frame 2,8
endif
Play Sprite 2, 8, 11, 300
if touchingleft=0
scrollx#=scrollx#-2
endif
if characterdirection=1
Mirror Sprite 2
characterdirection=0
endif
else
if howattack=2 || howattack=3
if Sprite Frame(2)>15 || Sprite Frame(2)<12
Set Sprite Frame 2,12
endif
Play Sprite 2, 12, 15, 300
if touchingleft=0
scrollx#=scrollx#-2
endif
if characterdirection=1
Mirror Sprite 2
characterdirection=0
endif
endif
endif
else //left with attack
if LeftKey() && SpaceKey()
if howattack=1
if Sprite Frame(2)>11 || Sprite Frame(2)<8
Set Sprite Frame 2,8
endif
Play Sprite 2, 8, 11, 300
if touchingright=0
scrollx#=scrollx#+2
endif
if characterdirection=0
Mirror Sprite 2
characterdirection=1
endif
else
if howattack=2 || howattack=3
if Sprite Frame(2)>15 || Sprite Frame(2)<12
Set Sprite Frame 2,12
endif
Play Sprite 2, 12, 15, 300
scrollx#=scrollx#+2
if characterdirection=0
Mirror Sprite 2
characterdirection=1
endif
endif
endif
else
if SpaceKey() //punching
if howattack=1
if Sprite Frame(2)<>6 && Sprite Frame(2)<>7
Set Sprite Frame 2, 6
endif
Play Sprite 2,6,7,200
else
if howattack=2 || howattack=3
Set Sprite Frame 2, 12
endif
endif
else
if RightKey() //right
if Sprite Frame(2)>5 || Sprite Frame(2)<2
Set Sprite Frame 2,2
endif
Play Sprite 2, 2, 5, 300
if touchingleft=0
scrollx#=scrollx#-2
endif
if characterdirection=1
Mirror Sprite 2
characterdirection=0
endif
else
if LeftKey() //left
if Sprite Frame(2)>5 || Sprite Frame(2)<2
Set Sprite Frame 2,2
endif
Play Sprite 2, 2, 5, 300
if touchingright=0
scrollx#=scrollx#+2
endif
if characterdirection=0
Mirror Sprite 2
characterdirection=1
endif
else
if ifjumping=0 //standstill
Set Sprite Frame 2, 1
endif
endif
endif
endif
endif
endif
//////////GRAVITY & JUMPING//////////
//jumping
if UpKey() && touchingtop=1
ifjumping=1
endif
if ifjumping=1 && touchingbottom=0
scrolly#=scrolly#+howmuchjump
jumpcounter=jumpcounter+1
endif
if jumpcounter=1
howmuchjump=3
endif
if jumpcounter=15
howmuchjump=2
endif
if jumpcounter=30
howmuchjump=1
endif
if jumpcounter=40
ifjumping=0
jumpcounter=0
howmuchjump=3
endif
if jumpcounter=20 && gobigorsmall=1 || touchingbottom=1
ifjumping=0
jumpcounter=0
howmuchjump=3
endif
Sprite 1, scrollx#/35, scrolly#/35, 1
Sprite 2, 320, 240, 2
Sprite 11, 0+scrollx#, -10+scrolly#, 12 //0
Sprite 12, -300+scrollx#, 130+scrolly#, 12
Sprite 13, 500+scrollx#, 130+scrolly#, 12
/////////RESET VARIABLES AND SET END VARIABLES////////
touchingtop=0
touchingbottom=0
touchingleft=0
touchingright=0
nogetlarge=0
opendirectionfactor=0
overlappingplatform=0
touchingplatform=0
//////////UPDATE SCREEN/////////////
sync
//////////END LOOP/////////////
loop