Posted: 13th Feb 2022 2:41
Here is my problem, probably easy but a brain teaser for me.

I need a level score not a totals score. each level earns a star to light up if you achieve a score to that amount. I have it working fine but for game score not level score.

Some how I need to assign each level select image as its own level and score.

Here is what I am doing.

See if your score is whatever all the images for every level light up with the same frame . I thought about doing a level array but already am making the images with there own array.


+ Code Snippet
counter = 0
level_select as integer[20]
for y = 25 to 100 step 25
    for x = 10 to 90 step 20
       level_select[counter] = createsprite(selectlevel)
       SetSpriteScale(level_select[counter],0.08,0.08)
       SetSpritePositionByOffset(level_select[counter],x,y+6)
       SetSpriteAnimation(level_select[counter],130,135,4)

        if Score<200
       SetSpriteFrame(level_select[counter],4)
       endif
       if Score=>200
       SetSpriteFrame(level_select[counter],1)
       endif
       if Score=>350
       SetSpriteFrame(level_select[counter],2)
       endif
       if Score=>500
       SetSpriteFrame(level_select[counter],3)
       endif
       
        inc counter
    next x
next y


The only way i can figure this out was a long way. adding them for 20 levels

+ Code Snippet
counter = 0
level_select as integer[20]
for y = 25 to 100 step 25
    for x = 10 to 90 step 20
       level_select[counter] = createsprite(selectlevel)
       SetSpriteScale(level_select[counter],0.08,0.08)
       SetSpritePositionByOffset(level_select[counter],x,y+6)
       SetSpriteAnimation(level_select[counter],130,135,4)
              
       if Level_Score[1].Score<200 then SetSpriteFrame(level_select[0],4)
       if Level_Score[1].Score=>200 then SetSpriteFrame(level_select[0],1)
       if Level_Score[1].Score=>350 then  SetSpriteFrame(level_select[0],2)
       if Level_Score[1].Score=>500 then SetSpriteFrame(level_select[0],3)
       
       if Level_Score[2].Score<200 then SetSpriteFrame(level_select[1],4)
       if Level_Score[2].Score=>200 then SetSpriteFrame(level_select[1],1)
       if Level_Score[2].Score=>350 then  SetSpriteFrame(level_select[1],2)
       if Level_Score[2].Score=>500 then SetSpriteFrame(level_select[1],3)
       
       if Level_Score[3].Score<200 then SetSpriteFrame(level_select[2],4)
       if Level_Score[3].Score=>200 then SetSpriteFrame(level_select[2],1)
       if Level_Score[3].Score=>350 then  SetSpriteFrame(level_select[2],2)
       if Level_Score[3].Score=>500 then SetSpriteFrame(level_select[2],3)
       
       if Level_Score[4].Score<  200 then SetSpriteFrame(level_select[3],4)
       if Level_Score[4].Score=>200 then SetSpriteFrame(level_select[3],1)
       if Level_Score[4].Score=>350 then SetSpriteFrame(level_select[3],2)
       if Level_Score[4].Score=>500 then SetSpriteFrame(level_select[3],3)
       
       if Level_Score[5].Score<  200 then SetSpriteFrame(level_select[4],4)
       if Level_Score[5].Score=>200 then SetSpriteFrame(level_select[4],1)
       if Level_Score[5].Score=>350 then SetSpriteFrame(level_select[4],2)
       if Level_Score[5].Score=>500 then SetSpriteFrame(level_select[4],3)
       
       if Level_Score[6].Score<  200 then SetSpriteFrame(level_select[5],4)
       if Level_Score[6].Score=>200 then SetSpriteFrame(level_select[5],1)
       if Level_Score[6].Score=>350 then SetSpriteFrame(level_select[5],2)
       if Level_Score[6].Score=>500 then SetSpriteFrame(level_select[5],3)
       
       if Level_Score[7].Score<  200 then SetSpriteFrame(level_select[6],4)
       if Level_Score[7].Score=>200 then SetSpriteFrame(level_select[6],1)
       if Level_Score[7].Score=>350 then SetSpriteFrame(level_select[6],2)
       if Level_Score[7].Score=>500 then SetSpriteFrame(level_select[6],3)
       
       if Level_Score[8].Score<  200 then SetSpriteFrame(level_select[7],4)
       if Level_Score[8].Score=>200 then SetSpriteFrame(level_select[7],1)
       if Level_Score[8].Score=>350 then SetSpriteFrame(level_select[7],2)
       if Level_Score[8].Score=>500 then SetSpriteFrame(level_select[7],3)
       
       if Level_Score[9].Score<  200 then SetSpriteFrame(level_select[8],4)
       if Level_Score[9].Score=>200 then SetSpriteFrame(level_select[8],1)
       if Level_Score[9].Score=>350 then SetSpriteFrame(level_select[8],2)
       if Level_Score[9].Score=>500 then SetSpriteFrame(level_select[8],3)
       
       if Level_Score[10].Score<  200 then SetSpriteFrame(level_select[9],4)
       if Level_Score[10].Score=>200 then SetSpriteFrame(level_select[9],1)
       if Level_Score[10].Score=>350 then SetSpriteFrame(level_select[9],2)
       if Level_Score[10].Score=>500 then SetSpriteFrame(level_select[9],3)
       
       if Level_Score[11].Score<  200 then SetSpriteFrame(level_select[10],4)
       if Level_Score[11].Score=>200 then SetSpriteFrame(level_select[10],1)
       if Level_Score[11].Score=>350 then SetSpriteFrame(level_select[10],2)
       if Level_Score[11].Score=>500 then SetSpriteFrame(level_select[10],3)
       
       
       if Level_Score[12].Score<200 then   SetSpriteFrame(level_select[11],4)
       if Level_Score[12].Score=>200 then SetSpriteFrame(level_select[11],1)
       if Level_Score[12].Score=>350 then SetSpriteFrame(level_select[11],2)
       if Level_Score[12].Score=>500 then SetSpriteFrame(level_select[11],3)
       
       if Level_Score[13].Score<200 then   SetSpriteFrame(level_select[12],4)
       if Level_Score[13].Score=>200 then SetSpriteFrame(level_select[12],1)
       if Level_Score[13].Score=>350 then SetSpriteFrame(level_select[12],2)
       if Level_Score[13].Score=>500 then SetSpriteFrame(level_select[12],3)
       
       if Level_Score[14].Score<200 then   SetSpriteFrame(level_select[13],4)
       if Level_Score[14].Score=>200 then SetSpriteFrame(level_select[13],1)
       if Level_Score[14].Score=>350 then SetSpriteFrame(level_select[13],2)
       if Level_Score[14].Score=>500 then SetSpriteFrame(level_select[13],3)
       
       if Level_Score[15].Score<  200 then SetSpriteFrame(level_select[14],4)
       if Level_Score[15].Score=>200 then SetSpriteFrame(level_select[14],1)
       if Level_Score[15].Score=>350 then SetSpriteFrame(level_select[14],2)
       if Level_Score[15].Score=>500 then SetSpriteFrame(level_select[14],3)
       
       if Level_Score[16].Score<  200 then SetSpriteFrame(level_select[15],4)
       if Level_Score[16].Score=>200 then SetSpriteFrame(level_select[15],1)
       if Level_Score[16].Score=>350 then SetSpriteFrame(level_select[15],2)
       if Level_Score[16].Score=>500 then SetSpriteFrame(level_select[15],3)
       
       if Level_Score[17].Score<  200 then SetSpriteFrame(level_select[16],4)
       if Level_Score[17].Score=>200 then SetSpriteFrame(level_select[16],1)
       if Level_Score[17].Score=>350 then SetSpriteFrame(level_select[16],2)
       if Level_Score[17].Score=>500 then SetSpriteFrame(level_select[16],3)
       
       if Level_Score[18].Score<  200 then SetSpriteFrame(level_select[17],4)
       if Level_Score[18].Score=>200 then SetSpriteFrame(level_select[17],1)
       if Level_Score[18].Score=>350 then SetSpriteFrame(level_select[17],2)
       if Level_Score[18].Score=>500 then SetSpriteFrame(level_select[17],3)
       
       if Level_Score[19].Score<  200 then SetSpriteFrame(level_select[18],4)
       if Level_Score[19].Score=>200 then SetSpriteFrame(level_select[18],1)
       if Level_Score[19].Score=>350 then SetSpriteFrame(level_select[18],2)
       if Level_Score[19].Score=>500 then SetSpriteFrame(level_select[18],3)
       
       if Level_Score[20].Score<  200 then SetSpriteFrame(level_select[19],4)
       if Level_Score[20].Score=>200 then SetSpriteFrame(level_select[19],1)
       if Level_Score[20].Score=>350 then SetSpriteFrame(level_select[19],2)
       if Level_Score[20].Score=>500 then SetSpriteFrame(level_select[19],3)
       
       
        inc counter
    next x
next y
Posted: 13th Feb 2022 13:01
Remove the numbers in square brackets, replace them with a variable then encase it in a for loop using that variable.
Posted: 13th Feb 2022 19:58
Remove the numbers in square brackets, replace them with a variable then encase it in a for loop using that variable.


I did this and it gave me errors and also made them all do the same thing.

So I guess this works.

I created a level score empty array then mixed this with each sprite.
Posted: 13th Feb 2022 20:22
I did this

Great!
and it gave me errors and also made them all do the same thing

In that case you didn't do it, you did something else.

Whenever you have repeating code where the only difference is an incremental number, the solution is clear. Make the number a variable and put the code in a loop. As I suggested above.