• BadgerBadger February 19

    Hey guys, here's the code to my submission "Bomber". I've never posted code before so if it doesn't come out right perhaps some could edit it for me so it displays correctly? This is my first project - I only started coding since I downloaded the Codea app a few weeks back. so it's not terribly advanced but a big personal achievement. I've not used any classes as I don't have a clue what to do with them, so I'd be interested in feedback on how I could have coded this in a simpler way (I've used a lot of if... type loops).

  • BadgerBadger February 19
        supportedOrientations(LANDSCAPE_ANY)
    -- Use this function to perform your initial setup
    function setup()
        displayMode(FULLSCREEN)
        gamestatus = false
        planealive = true
        gamewon = false
        gamelost = false
        posx=0
        posy=HEIGHT-30
        level=1
        difflevel=level*30
        buildingx = 0
        t=0
        bombready = false
        z=0
        buildings = {}
        bombs = {}
        buildingheights = false    
    end
    -- This function gets called once every frame
    function draw()    
        ii = IconImages()
        Bomber = ii:getBomber() 
        Flame = ii:getFlame()
    -- start screen - a touch on the screen takes you to the main game
    function splashscreen()     
        background(35, 34, 34, 255)
        font("Courier")
        fill(250, 250, 250, 255)
        fontSize(50)
        text("B  O  M  B  E  R",WIDTH/2, ((HEIGHT/2)+100))
        fontSize(20)
        textWrapWidth(WIDTH-70)
        text("Your Mission: To flatten the opposing force's buildings in the shortest time possible. You're losing height all the time, so make sure you don't crash into the buildings! It takes time to load bombs into the dropping position, and this takes longer for each level. Touch the screen to drop a bomb.",WIDTH/2, ((HEIGHT/2)-60))
        fontSize(15)
            text("T O U C H   T H E   S C R E E N   T O    C O N T I N U E ",WIDTH/2, 100)
        if CurrentTouch.x>0 and CurrentTouch.x<WIDTH then 
        gamestatus=true
        end   
    end  
          if gamestatus==false then
            splashscreen()
            else if gamestatus == true and gamewon == false then
            if buildingheights == false then
            --generate random heights for the buildings - drawn later.  
                for i=1,12 do
                h=math.random((2*level),15)
                buildings[i] = h*35
                end
                for i,k in ipairs(buildings) do
                print (buildings[i])
                end
            end
            buildingheights = true 
            font("HelveticaNeue-Bold")
            gamestart()       
            end
            end    
    --main game programming
        function gamestart()  
        background(131, 122, 202, 255)  
        fill(217, 214, 200, 255)
        noStroke()
        rect(0,0,WIDTH, 50)
        fill(0,0,0,255)
        fontSize(15)
        textAlign(LEFT)
        text("Height: "..posy.." ft",350, 20)
        
        -- count number of buildings - used to work out when the game is won
        bnum=12
        for i,v in pairs(buildings) do
            if buildings[i]==0 then
                bnum = bnum - 1
                end
                end
        textAlign(RIGHT)
        text("Buildings remaining: "..bnum,WIDTH-100, 20)
        text("Level: "..level,((WIDTH/2)+100),20)
    -- draw buildings using randomly generated heights calculated earlier
    fill(102, 95, 95, 255) 
    strokeWidth(5)
    stroke(0, 0, 0, 255)
        for i,k in ipairs(buildings) do
           rect(buildingx, 50,WIDTH/12, buildings[i])
            buildingx = buildingx + (WIDTH/12)   
            --end  
            end 
         buildingx = 0
        -- draw windows on buildings
            windowColour=255
            noStroke()
            pushMatrix()
            winx=((WIDTH/12)/7)
            winy=60
            for i,k in ipairs(buildings) do
                -- work out how many rows of windows from the building height
                bht=math.floor(buildings[i]/30)
            for i=1,bht do
            fill(windowColour, windowColour, 124, 255)
                for i=1,3 do
                rect(winx,winy,((WIDTH/12)/7),10)
                winx = winx + (2*((WIDTH/12)/7))
                end
                -- add gradient to window colour, getting bluer towards the top of the building
                windowColour = windowColour - 8  
            winx=((WIDTH/12)/7)
            winy = winy + 30
            end
            windowColour=255
            translate(WIDTH/12,0)
            winy=60
            end
            popMatrix()       
    -- move plane
    if planealive == true and gamewon == false  and gamelost == false then  
    
        if bombready == true then
            else if bombready == false then
                noTint()
                end
                end
        sprite(Bomber, posx, posy, 60, 60)
    -- draw flame but add a slight randomisation of position to give moving flame effect
    sprite(Flame, posx-(60+(math.random(1,5)))  , ((posy-3)+math.random(1,6)), 60, 60)
    posx = posx + (5+level)
    if posx > WIDTH then
        posx=0
        posy = posy - difflevel
        end
    end
    -- drop bomb if screen is touched and the bomb counter shows its ready (ie dont drop loads!)
    if CurrentTouch.state==BEGAN and 
        bombready == true
        and planealive == true
        and CurrentTouch.y <= HEIGHT then
        bombready=false
        t=0
        c=posx
        d=posy
        table.insert(bombs, vec2(c,d))
        sound(SOUND_SHOOT, 32257)
        end
        
        -- bomb timer (120 is approx 2 secs)
        if bombready==false and t> (30*level)then
            bombready = true
            else 
            t = t + 1
            end
             -- show bomb is ready at base of screen
        if planealive== true and bombready==true then
            fill(248, 2, 2, 255)
            textAlign(CENTER)
            fontSize(20)
            font("HelveticaNeue-Bold")
            text("B O M B  R E A D Y",posx, posy+20)
            end  
        
        -- draw bombs - uses a table and iterates each screen frame
        for i,v in pairs(bombs) do
            bombs[i]=vec2(v.x,v.y)
            v.y = v.y - 10
            bombs[i]=vec2(v.x,v.y)
            sprite("Tyrian Remastered:Missile Big", v.x, v.y)
            if bombs[i].y < 60 then 
                table.remove(bombs, i)
                end
        end
        -- remove building if bombed and remove bomb
            for i,v in pairs(buildings) do
                for j,k in pairs(bombs) do
                if bombs[j].x > ((i-1)*(WIDTH/12))
                and bombs[j].x < (i*(WIDTH/12))
                and bombs[j].y < buildings[i]
                then
                    sound(SOUND_EXPLODE, 1666)
                    explosion(bombs[j].x, bombs[j].y)
                buildings[i]=0
                table.remove(bombs, j)
                end
                end
                end
    -- check if plane has crashed         
            for i,v in pairs(buildings) do
                if posx > ((i-1)*(WIDTH/12))
                and posx < (i*(WIDTH/12))
                and posy <= (buildings[i]+50)
                then
                explosion(posx, posy)
                gamelost = true
                end
                end     
    if gamelost == true then
        planealive = false
        fill(233, 42, 43, 194)
        rect(0,50,WIDTH,HEIGHT)
        fill(255)
        fontSize(40)
        text("YOU'VE CRASHED....", WIDTH/2, HEIGHT/2 )
        end            
    -- check for a win ! :)
        if bnum==0 then
        planealive = false
        fill(85, 209, 54, 255)
        rect(0,50,WIDTH,HEIGHT)
        fill(255)
        fontSize(50)
        text("YOU'VE WON !!!", WIDTH/2, HEIGHT/2 )
        fontSize(40)
        text("Ready for level "..(level+1).." ?", WIDTH/2, ((HEIGHT/2)-60) )
        fontSize(30)
        text("Touch the screen to continue", WIDTH/2, ((HEIGHT/2)-120) )
        
        if CurrentTouch.x > 0 and CurrentTouch.x < WIDTH and CurrentTouch.state == BEGAN then
        buildingheights = false
        gamewon = false
        planealive = true
        posx=0
        posy=HEIGHT-30
        level = level + 1
        end  
    end
        
    -- explosion function - needs more work so the explosion stays on the screen longer
           
    function explosion(expx,expy)
       sprite("Tyrian Remastered:Explosion Huge", expx, expy)
    end
    end                         
    end
    
  • BadgerBadger February 19

    Here's the data for the custom sprites - I located them in the Main tab under the code posted above.

  • BadgerBadger February 19
    IconImages = class()
    
    function IconImages:getBomber()
    local img = image(30, 30)
    img:set(1,11,0,0,0,255)
    img:set(1,12,0,0,0,255)
    img:set(1,13,0,0,0,255)
    img:set(2,10,0,0,0,255)
    img:set(2,11,0,0,0,255)
    img:set(2,12,0,0,0,255)
    img:set(2,13,0,0,-3,255)
    img:set(2,14,0,0,0,255)
    img:set(2,15,0,0,0,255)
    img:set(2,16,0,0,0,255)
    img:set(2,17,0,0,0,255)
    img:set(2,18,0,0,0,255)
    img:set(2,19,0,0,0,255)
    img:set(3,10,0,0,0,255)
    img:set(3,11,127,127,127,255)
    img:set(3,12,127,127,127,255)
    img:set(3,13,127,127,127,255)
    img:set(3,14,127,127,127,255)
    img:set(3,15,127,127,127,255)
    img:set(3,16,127,127,127,255)
    img:set(3,17,127,127,127,255)
    img:set(3,18,127,127,127,255)
    img:set(3,19,0,0,0,255)
    img:set(4,10,0,0,0,255)
    img:set(4,11,127,127,127,255)
    img:set(4,12,127,127,127,255)
    img:set(4,13,127,127,127,255)
    img:set(4,14,127,127,127,255)
    img:set(4,15,127,127,127,255)
    img:set(4,16,127,127,127,255)
    img:set(4,17,127,127,127,255)
    img:set(4,18,0,0,0,255)
    img:set(5,10,0,0,0,255)
    img:set(5,11,127,127,127,255)
    img:set(5,12,127,127,127,255)
    img:set(5,13,127,127,127,255)
    img:set(5,14,127,127,127,255)
    img:set(5,15,127,127,127,255)
    img:set(5,16,127,127,127,255)
    img:set(5,17,0,0,0,255)
    img:set(6,10,0,0,0,255)
    img:set(6,11,127,127,127,255)
    img:set(6,12,127,127,127,255)
    img:set(6,13,127,127,127,255)
    img:set(6,14,127,127,127,255)
    img:set(6,15,127,127,127,255)
    img:set(6,16,0,0,0,255)
    img:set(7,10,0,0,0,255)
    img:set(7,11,127,127,127,255)
    img:set(7,12,127,127,127,255)
    img:set(7,13,127,127,127,255)
    img:set(7,14,127,127,127,255)
    img:set(7,15,0,0,0,255)
    img:set(8,6,0,0,0,255)
    img:set(8,7,0,0,0,255)
    img:set(8,8,0,0,0,255)
    img:set(8,9,0,0,0,255)
    img:set(8,10,0,0,0,255)
    img:set(8,11,127,127,127,255)
    img:set(8,12,127,127,127,255)
    img:set(8,13,127,127,127,255)
    img:set(8,14,127,127,127,255)
    img:set(8,15,0,0,0,255)
    img:set(9,6,0,0,0,255)
    img:set(9,7,127,127,127,255)
    img:set(9,8,127,127,127,255)
    img:set(9,9,0,0,0,255)
    img:set(9,10,0,0,0,255)
    img:set(9,11,0,0,0,255)
    img:set(9,12,127,127,127,255)
    img:set(9,13,127,127,127,255)
    img:set(9,14,127,127,127,255)
    img:set(9,15,0,0,0,255)
    img:set(10,6,0,0,0,255)
    img:set(10,7,127,127,127,255)
    img:set(10,8,127,127,127,255)
    img:set(10,9,127,127,127,255)
    img:set(10,10,127,127,127,255)
    img:set(10,11,127,127,127,255)
    img:set(10,12,0,0,0,255)
    img:set(10,13,127,127,127,255)
    img:set(10,14,127,127,127,255)
    img:set(10,15,0,0,0,255)
    img:set(11,6,0,0,0,255)
    img:set(11,7,127,127,127,255)
    img:set(11,8,127,127,127,255)
    img:set(11,9,127,127,127,255)
    img:set(11,10,127,127,127,255)
    img:set(11,11,127,127,127,255)
    img:set(11,12,127,127,127,255)
    img:set(11,13,0,0,0,255)
    img:set(11,14,127,127,127,255)
    img:set(11,15,0,0,0,255)
    img:set(12,7,0,0,0,255)
    img:set(12,8,127,127,127,255)
    img:set(12,9,127,127,127,255)
    img:set(12,10,127,127,127,255)
    img:set(12,11,127,127,127,255)
    img:set(12,12,127,127,127,255)
    img:set(12,13,0,0,0,255)
    img:set(12,14,127,127,127,255)
    img:set(12,15,0,0,0,255)
    img:set(13,8,0,0,0,255)
    img:set(13,9,127,127,127,255)
    img:set(13,10,127,127,127,255)
    img:set(13,11,127,127,127,255)
    img:set(13,12,127,127,127,255)
    img:set(13,13,0,0,0,255)
    img:set(13,14,127,127,127,255)
    img:set(13,15,0,0,0,255)
    img:set(14,8,0,0,0,255)
    img:set(14,9,127,127,127,255)
    img:set(14,10,127,127,127,255)
    img:set(14,11,127,127,127,255)
    img:set(14,12,127,127,127,255)
    img:set(14,13,0,0,0,255)
    img:set(14,14,127,127,127,255)
    img:set(14,15,0,0,0,255)
    img:set(15,9,0,0,0,255)
    img:set(15,10,127,127,127,255)
    img:set(15,11,127,127,127,255)
    img:set(15,12,127,127,127,255)
    img:set(15,13,0,0,0,255)
    img:set(15,14,127,127,127,255)
    img:set(15,15,0,0,0,255)
    img:set(16,10,0,0,0,255)
    img:set(16,11,0,0,0,255)
    img:set(16,12,127,127,127,255)
    img:set(16,13,0,0,0,255)
    img:set(16,14,127,127,127,255)
    img:set(16,15,0,0,0,255)
    img:set(17,11,0,0,0,255)
    img:set(17,12,127,127,127,255)
    img:set(17,13,0,0,0,255)
    img:set(17,14,127,127,127,255)
    img:set(17,15,0,0,0,255)
    img:set(18,11,0,0,0,255)
    img:set(18,12,0,0,0,255)
    img:set(18,13,127,127,127,255)
    img:set(18,14,127,127,127,255)
    img:set(18,15,0,0,0,255)
    img:set(19,11,0,0,0,255)
    img:set(19,12,127,127,127,255)
    img:set(19,13,127,127,127,255)
    img:set(19,14,0,128,255,255)
    img:set(19,15,0,128,255,255)
    img:set(19,16,0,0,0,255)
    img:set(20,11,0,0,0,255)
    img:set(20,12,127,127,127,255)
    img:set(20,13,127,127,127,255)
    img:set(20,14,0,128,255,255)
    img:set(20,15,255,255,255,255)
    img:set(20,16,0,128,255,255)
    img:set(20,17,0,0,0,255)
    img:set(21,11,0,0,0,255)
    img:set(21,12,127,127,127,255)
    img:set(21,13,127,127,127,255)
    img:set(21,14,0,128,255,255)
    img:set(21,15,255,255,255,255)
    img:set(21,16,0,128,255,255)
    img:set(21,17,0,0,0,255)
    img:set(22,11,0,0,0,255)
    img:set(22,12,127,127,127,255)
    img:set(22,13,127,127,127,255)
    img:set(22,14,0,128,255,255)
    img:set(22,15,0,128,255,255)
    img:set(22,16,0,128,255,255)
    img:set(22,17,0,0,0,255)
    img:set(23,11,0,0,0,255)
    img:set(23,12,127,127,127,255)
    img:set(23,13,127,127,127,255)
    img:set(23,14,0,128,255,255)
    img:set(23,15,0,128,255,255)
    img:set(23,16,0,128,255,255)
    img:set(23,17,0,0,0,255)
    img:set(24,11,0,0,0,255)
    img:set(24,12,127,127,127,255)
    img:set(24,13,127,127,127,255)
    img:set(24,14,0,128,255,255)
    img:set(24,15,0,128,255,255)
    img:set(24,16,0,128,255,255)
    img:set(24,17,0,0,0,255)
    img:set(25,11,0,0,0,255)
    img:set(25,12,127,127,127,255)
    img:set(25,13,127,127,127,255)
    img:set(25,14,0,128,255,255)
    img:set(25,15,0,128,255,255)
    img:set(25,16,0,0,0,255)
    img:set(26,11,0,0,0,255)
    img:set(26,12,127,127,127,255)
    img:set(26,13,127,127,127,255)
    img:set(26,14,0,0,0,255)
    img:set(26,15,0,0,0,255)
    img:set(27,11,0,0,0,255)
    img:set(27,12,127,127,127,255)
    img:set(27,13,0,0,0,255)
    img:set(28,11,0,0,0,255)
    img:set(28,12,127,127,127,255)
    img:set(28,13,0,0,0,255)
    img:set(29,11,0,0,0,255)
    img:set(29,12,127,127,127,255)
    img:set(30,11,0,0,0,255)
    img:set(30,12,0,0,0,255)
    return img
    end
    
  • BadgerBadger February 19

    Heres the flame sprite...

  • BadgerBadger February 19
    function IconImages:getFlame()
    local img = image(30, 30)
    img:set(3,5,22,0,0,22)
    img:set(3,6,22,0,0,22)
    img:set(3,7,22,0,0,22)
    img:set(3,8,22,0,0,22)
    img:set(3,9,22,0,0,22)
    img:set(3,10,22,0,0,22)
    img:set(3,11,22,0,0,22)
    img:set(3,12,22,0,0,22)
    img:set(3,13,22,0,0,22)
    img:set(3,14,22,0,0,22)
    img:set(4,5,22,0,0,22)
    img:set(4,6,93,0,0,93)
    img:set(4,7,86,0,0,86)
    img:set(4,8,89,0,0,89)
    img:set(4,9,22,0,0,22)
    img:set(4,10,22,0,0,22)
    img:set(4,11,93,0,0,93)
    img:set(4,12,86,0,0,86)
    img:set(4,13,93,0,0,93)
    img:set(4,14,22,0,0,22)
    img:set(4,15,22,0,0,22)
    img:set(4,16,22,0,0,22)
    img:set(4,17,22,0,0,22)
    img:set(4,18,22,0,0,22)
    img:set(4,19,22,0,0,22)
    img:set(5,5,22,0,0,22)
    img:set(5,6,86,0,0,86)
    img:set(5,7,208,0,0,208)
    img:set(5,8,91,0,0,91)
    img:set(5,9,86,0,0,86)
    img:set(5,10,22,0,0,22)
    img:set(5,11,84,0,0,84)
    img:set(5,12,201,0,0,201)
    img:set(5,13,84,0,0,84)
    img:set(5,14,22,0,0,22)
    img:set(5,15,22,0,0,22)
    img:set(5,16,89,0,0,89)
    img:set(5,17,86,0,0,86)
    img:set(5,18,93,0,0,93)
    img:set(5,19,22,0,0,22)
    img:set(6,3,22,0,0,22)
    img:set(6,4,22,0,0,22)
    img:set(6,5,22,0,0,22)
    img:set(6,6,84,0,0,84)
    img:set(6,7,89,0,0,89)
    img:set(6,8,208,0,0,208)
    img:set(6,9,91,0,0,91)
    img:set(6,10,83,0,0,83)
    img:set(6,11,91,0,0,91)
    img:set(6,12,82,0,0,82)
    img:set(6,13,91,0,0,91)
    img:set(6,14,84,0,0,84)
    img:set(6,15,84,0,0,84)
    img:set(6,16,83,0,0,83)
    img:set(6,17,201,0,0,201)
    img:set(6,18,86,0,0,86)
    img:set(6,19,22,0,0,22)
    img:set(7,3,22,0,0,22)
    img:set(7,4,93,0,0,93)
    img:set(7,5,84,0,0,84)
    img:set(7,6,84,0,0,84)
    img:set(7,7,83,0,0,83)
    img:set(7,8,91,0,0,91)
    img:set(7,9,102,0,0,102)
    img:set(7,10,221,0,0,221)
    img:set(7,11,96,0,0,96)
    img:set(7,12,82,0,0,82)
    img:set(7,13,82,0,0,82)
    img:set(7,14,201,0,0,201)
    img:set(7,15,83,0,0,83)
    img:set(7,16,84,0,0,84)
    img:set(7,17,86,0,0,86)
    img:set(7,18,93,0,0,93)
    img:set(7,19,22,0,0,22)
    img:set(8,3,22,0,0,22)
    img:set(8,4,86,0,0,86)
    img:set(8,5,201,0,0,201)
    img:set(8,6,84,0,0,84)
    img:set(8,7,22,0,0,22)
    img:set(8,8,93,0,0,93)
    img:set(8,9,228,0,0,228)
    img:set(8,10,241,0,0,241)
    img:set(8,11,234,0,0,234)
    img:set(8,12,102,0,0,102)
    img:set(8,13,96,0,0,96)
    img:set(8,14,91,0,0,91)
    img:set(8,15,86,0,0,86)
    img:set(8,16,22,0,0,22)
    img:set(8,17,22,0,0,22)
    img:set(8,18,22,0,0,22)
    img:set(8,19,22,0,0,22)
    img:set(9,3,22,0,0,22)
    img:set(9,4,93,0,0,93)
    img:set(9,5,86,0,0,86)
    img:set(9,6,93,0,0,93)
    img:set(9,7,22,0,0,22)
    img:set(9,8,108,0,0,108)
    img:set(9,9,234,0,0,234)
    img:set(9,10,255,0,0,255)
    img:set(9,11,248,0,0,248)
    img:set(9,12,241,0,0,241)
    img:set(9,13,221,0,0,221)
    img:set(9,14,91,0,0,91)
    img:set(9,15,22,0,0,22)
    img:set(9,16,22,0,0,22)
    img:set(9,17,22,0,0,22)
    img:set(9,18,22,0,0,22)
    img:set(10,3,22,0,0,22)
    img:set(10,4,22,0,0,22)
    img:set(10,5,22,0,0,22)
    img:set(10,6,22,0,0,22)
    img:set(10,7,22,0,0,22)
    img:set(10,8,102,1,0,102)
    img:set(10,9,234,9,0,234)
    img:set(10,10,255,15,0,255)
    img:set(10,11,255,15,0,255)
    img:set(10,12,255,7,0,255)
    img:set(10,13,241,0,0,241)
    img:set(10,14,106,0,0,106)
    img:set(10,15,93,0,0,93)
    img:set(10,16,86,0,0,86)
    img:set(10,17,93,0,0,93)
    img:set(10,18,22,0,0,22)
    img:set(11,4,22,0,0,22)
    img:set(11,5,93,0,0,93)
    img:set(11,6,86,0,0,86)
    img:set(11,7,84,0,0,84)
    img:set(11,8,99,1,0,99)
    img:set(11,9,234,20,0,234)
    img:set(11,10,255,88,0,255)
    img:set(11,11,255,93,0,255)
    img:set(11,12,255,24,0,255)
    img:set(11,13,241,10,0,241)
    img:set(11,14,221,1,0,221)
    img:set(11,15,89,0,0,89)
    img:set(11,16,201,0,0,201)
    img:set(11,17,86,0,0,86)
    img:set(11,18,22,0,0,22)
    img:set(12,4,22,0,0,22)
    img:set(12,5,86,0,0,86)
    img:set(12,6,201,0,0,201)
    img:set(12,7,82,0,0,82)
    img:set(12,8,96,3,0,96)
    img:set(12,9,234,30,0,234)
    img:set(12,10,255,103,0,255)
    img:set(12,11,255,116,0,255)
    img:set(12,12,255,102,0,255)
    img:set(12,13,241,28,0,241)
    img:set(12,14,102,12,0,102)
    img:set(12,15,89,0,0,89)
    img:set(12,16,83,0,0,83)
    img:set(12,17,89,0,0,89)
    img:set(12,18,22,0,0,22)
    img:set(13,4,22,0,0,22)
    img:set(13,5,93,0,0,93)
    img:set(13,6,86,0,0,86)
    img:set(13,7,84,1,0,84)
    img:set(13,8,99,16,0,99)
    img:set(13,9,234,41,0,234)
    img:set(13,10,255,112,0,255)
    img:set(13,11,255,126,0,255)
    img:set(13,12,255,119,0,255)
    img:set(13,13,241,101,0,241)
    img:set(13,14,109,21,0,109)
    img:set(13,15,89,1,0,89)
    img:set(13,16,84,0,0,84)
    img:set(13,17,22,0,0,22)
    img:set(13,18,22,0,0,22)
    img:set(14,4,22,0,0,22)
    img:set(14,5,22,0,0,22)
    img:set(14,6,22,0,0,22)
    img:set(14,7,22,3,0,22)
    img:set(14,8,99,30,0,99)
    img:set(14,9,234,106,0,234)
    img:set(14,10,255,126,0,255)
    img:set(14,11,255,133,0,255)
    img:set(14,12,255,132,0,255)
    img:set(14,13,248,107,0,248)
    img:set(14,14,234,30,0,234)
    img:set(14,15,214,2,0,214)
    img:set(14,16,86,0,0,86)
    img:set(14,17,22,0,0,22)
    img:set(15,4,22,0,0,22)
    img:set(15,5,22,0,0,22)
    img:set(15,6,22,0,0,22)
    img:set(15,7,86,4,0,86)
    img:set(15,8,106,36,0,106)
    img:set(15,9,241,110,0,241)
    img:set(15,10,255,133,0,255)
    img:set(15,11,255,190,0,255)
    img:set(15,12,255,133,0,255)
    img:set(15,13,255,105,0,255)
    img:set(15,14,241,27,0,241)
    img:set(15,15,102,2,0,102)
    img:set(15,16,84,0,0,84)
    img:set(15,17,22,0,0,22)
    img:set(15,18,22,0,0,22)
    img:set(16,4,22,0,0,22)
    img:set(16,5,93,0,0,93)
    
  • BadgerBadger February 19
    img:set(16,6,84,0,0,84)
    img:set(16,7,99,2,0,99)
    img:set(16,8,228,24,0,228)
    img:set(16,9,248,99,0,248)
    img:set(16,10,255,126,0,255)
    img:set(16,11,255,135,0,255)
    img:set(16,12,255,133,0,255)
    img:set(16,13,255,105,0,255)
    img:set(16,14,234,30,0,234)
    img:set(16,15,102,2,0,102)
    img:set(16,16,83,0,0,83)
    img:set(16,17,89,0,0,89)
    img:set(16,18,22,0,0,22)
    img:set(17,4,22,0,0,22)
    img:set(17,5,86,0,0,86)
    img:set(17,6,201,0,0,201)
    img:set(17,7,102,0,0,102)
    img:set(17,8,234,11,0,234)
    img:set(17,9,255,32,0,255)
    img:set(17,10,255,119,0,255)
    img:set(17,11,255,141,0,255)
    img:set(17,12,255,140,0,255)
    img:set(17,13,255,112,0,255)
    img:set(17,14,234,30,0,234)
    img:set(17,15,102,2,0,102)
    img:set(17,16,201,0,0,201)
    img:set(17,17,86,0,0,86)
    img:set(17,18,22,0,0,22)
    img:set(18,4,22,0,0,22)
    img:set(18,5,93,0,0,93)
    img:set(18,6,84,0,0,84)
    img:set(18,7,106,0,0,106)
    img:set(18,8,234,2,0,234)
    img:set(18,9,255,25,0,255)
    img:set(18,10,255,112,0,255)
    img:set(18,11,255,197,0,255)
    img:set(18,12,255,197,0,255)
    img:set(18,13,255,113,0,255)
    img:set(18,14,241,28,0,241)
    img:set(18,15,109,2,0,109)
    img:set(18,16,91,0,0,91)
    img:set(18,17,89,0,0,89)
    img:set(18,18,22,0,0,22)
    img:set(19,4,22,0,0,22)
    img:set(19,5,22,0,0,22)
    img:set(19,6,22,0,0,22)
    img:set(19,7,99,1,0,99)
    img:set(19,8,234,11,0,234)
    img:set(19,9,255,33,0,255)
    img:set(19,10,255,119,0,255)
    img:set(19,11,255,149,0,255)
    img:set(19,12,255,156,0,255)
    img:set(19,13,255,126,0,255)
    img:set(19,14,241,36,0,241)
    img:set(19,15,221,2,0,221)
    img:set(19,16,83,0,0,83)
    img:set(19,17,22,0,0,22)
    img:set(19,18,22,0,0,22)
    img:set(20,4,22,0,0,22)
    img:set(20,5,93,0,0,93)
    img:set(20,6,84,0,0,84)
    img:set(20,7,106,2,0,106)
    img:set(20,8,234,29,0,234)
    img:set(20,9,255,104,0,255)
    img:set(20,10,255,134,0,255)
    img:set(20,11,255,151,0,255)
    img:set(20,12,255,219,0,255)
    img:set(20,13,255,190,0,255)
    img:set(20,14,241,45,0,241)
    img:set(20,15,109,3,0,109)
    img:set(20,16,91,0,0,91)
    img:set(20,17,89,0,0,89)
    img:set(20,18,22,0,0,22)
    img:set(21,4,22,0,0,22)
    img:set(21,5,86,0,0,86)
    img:set(21,6,201,0,0,201)
    img:set(21,7,102,3,0,102)
    img:set(21,8,234,39,0,234)
    img:set(21,9,255,175,0,255)
    img:set(21,10,255,156,0,255)
    img:set(21,11,255,221,0,255)
    img:set(21,12,255,226,0,255)
    img:set(21,13,255,191,0,255)
    img:set(21,14,234,49,0,234)
    img:set(21,15,102,3,0,102)
    img:set(21,16,201,0,0,201)
    img:set(21,17,86,0,0,86)
    img:set(21,18,22,0,0,22)
    img:set(22,4,22,0,0,22)
    img:set(22,5,89,0,0,89)
    img:set(22,6,83,0,0,83)
    img:set(22,7,102,2,0,102)
    img:set(22,8,234,39,0,234)
    img:set(22,9,255,120,0,255)
    img:set(22,10,255,212,0,255)
    img:set(22,11,255,221,0,255)
    img:set(22,12,255,164,0,255)
    img:set(22,13,255,128,0,255)
    img:set(22,14,234,40,0,234)
    img:set(22,15,102,3,0,102)
    img:set(22,16,83,0,0,83)
    img:set(22,17,89,0,0,89)
    img:set(22,18,22,0,0,22)
    img:set(23,4,22,0,0,22)
    img:set(23,5,22,0,0,22)
    img:set(23,6,84,0,0,84)
    img:set(23,7,102,1,0,102)
    img:set(23,8,241,19,0,241)
    img:set(23,9,255,111,0,255)
    img:set(23,10,255,149,0,255)
    img:set(23,11,255,172,0,255)
    img:set(23,12,255,214,0,255)
    img:set(23,13,255,121,0,255)
    img:set(23,14,241,29,0,241)
    img:set(23,15,102,2,0,102)
    img:set(23,16,84,0,0,84)
    img:set(23,17,22,0,0,22)
    img:set(23,18,22,0,0,22)
    img:set(24,5,22,0,0,22)
    img:set(24,6,86,0,0,86)
    img:set(24,7,221,0,0,221)
    img:set(24,8,241,10,0,241)
    img:set(24,9,255,40,0,255)
    img:set(24,10,255,191,0,255)
    img:set(24,11,255,228,0,255)
    img:set(24,12,255,227,0,255)
    img:set(24,13,255,134,0,255)
    img:set(24,14,241,36,0,241)
    img:set(24,15,221,2,0,221)
    img:set(24,16,86,0,0,86)
    img:set(24,17,22,0,0,22)
    img:set(25,5,22,0,0,22)
    img:set(25,6,97,0,0,97)
    img:set(25,7,102,0,0,102)
    img:set(25,8,241,2,0,241)
    img:set(25,9,248,33,0,248)
    img:set(25,10,255,134,0,255)
    img:set(25,11,255,234,0,255)
    img:set(25,12,255,234,0,255)
    img:set(25,13,255,190,0,255)
    img:set(25,14,241,37,0,241)
    img:set(25,15,106,3,0,106)
    img:set(25,16,89,0,0,89)
    img:set(25,17,22,0,0,22)
    img:set(26,5,22,0,0,22)
    img:set(26,6,86,0,0,86)
    img:set(26,7,208,0,0,208)
    img:set(26,8,109,1,0,109)
    img:set(26,9,241,20,0,241)
    img:set(26,10,255,120,0,255)
    img:set(26,11,255,220,0,255)
    img:set(26,12,255,226,0,255)
    img:set(26,13,255,127,0,255)
    img:set(26,14,234,30,0,234)
    img:set(26,15,102,2,0,102)
    img:set(26,16,22,0,0,22)
    img:set(26,17,22,0,0,22)
    img:set(27,5,22,0,0,22)
    img:set(27,6,93,0,0,93)
    img:set(27,7,84,0,0,84)
    img:set(27,8,106,0,0,106)
    img:set(27,9,234,12,0,234)
    img:set(27,10,255,55,0,255)
    img:set(27,11,255,212,0,255)
    img:set(27,12,255,212,0,255)
    img:set(27,13,248,60,0,248)
    img:set(27,14,228,14,0,228)
    img:set(27,15,97,1,0,97)
    img:set(27,16,22,0,0,22)
    img:set(28,5,22,0,0,22)
    img:set(28,6,22,0,0,22)
    img:set(28,7,22,0,0,22)
    img:set(28,8,102,0,0,102)
    img:set(28,9,234,3,0,234)
    img:set(28,10,255,49,0,255)
    img:set(28,11,255,205,0,255)
    img:set(28,12,255,206,0,255)
    img:set(28,13,241,55,0,241)
    img:set(28,14,106,5,0,106)
    img:set(28,15,89,0,0,89)
    img:set(28,16,22,0,0,22)
    img:set(29,7,22,0,0,22)
    img:set(29,8,97,0,0,97)
    img:set(29,9,228,3,0,228)
    img:set(29,10,248,51,0,248)
    img:set(29,11,255,224,0,255)
    img:set(29,12,255,206,0,255)
    img:set(29,13,234,60,0,234)
    img:set(29,14,102,6,0,102)
    img:set(29,15,22,0,0,22)
    img:set(29,16,22,0,0,22)
    img:set(30,7,22,0,0,22)
    img:set(30,8,93,0,0,93)
    img:set(30,9,108,4,0,108)
    img:set(30,10,244,57,0,244)
    img:set(30,11,255,203,0,255)
    img:set(30,12,255,204,0,255)
    img:set(30,13,233,65,0,233)
    img:set(30,14,111,9,0,111)
    img:set(30,15,22,0,0,22)
    return img
    end
    
  • BadgerBadger February 19

    Phew! That was a lot of cut and paste .... Better get myself an online storage location to make things easier!

  • sanitsanit February 19

    My daughter and I play the game. It is simple but joyful. I think it might look better if it should have such cloud or cars running on the road. Thank you for sharing the game.

  • ZoytZoyt February 19

    Haha. Cool. By the way, someone REALLY likes spritely. I like it.

  • juaxixjuaxix February 19

    Very good integration with the Codea controls position, last time we talk about this, we asked @Simeon to have a full screen mode. do you remember? hahaha Well, i saw the bombs dont detect collision between buildings, in that little space, but i think thats a sweet way of increase game addiction Love the idea integration anyway. It would be great to compact all those spritely images and give them a persistent data name, so then you can use them just from a line with readGlobalData ,what do you think?

  • BadgerBadger February 19

    I've only used two sprites! Both are 30x30 - I was surprised as to how many lines of code two sprites took up! Is there anyway to compress this data?

  • BadgerBadger February 19

    Hey juaxix, thanks for your post. Originally I used the Spritelyloader example and the sprites were then stored in the global data, but I modified them to the version shown so the sprites would be carried over via copy paste for the competition entry. I'm very very new to coding so it's very likely there are easier ways of doing things compared to how I've done them, I've just done what I could understand in the short space of time.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with OpenID Sign In with Google

Sign In Apply for Membership

In this Discussion

Tagged