showAdFromBottom()

What would the proper usage of showAdFromBottom be on a portrait app? I keep getting error messages stating I’m trying to compare it with a nil value. Anyone know what it is I’m doing wrong? I have been just putting ~ showAdFromBottom() ~ whenever I want the ad to show, is this incorrect?

This is how I use the ads:

About 2/3 of the way down, I have 2 if statements that are my collision detection (one for ship hitting walls, and other for ship hitting asteroids), both cause the game to switch to gameState=2 which is the try again screen. That is where I call the ads with showAdFromBottom(). Then the try again screen goes to the main menu and I leave ads running, then when you press play button, it switches to gameState=1 which is the main game screen and I call hideAd() to hide the ads when the actual game is being played (about 1/3 of the way down the code).

So it makes the ads show during the try again screen and main menu screen, but hides them when playing the game.

You may want to check your spelling and capitalization. I had a problem where I had hideAds() in the code instead of hideAd() and got a similar error.

It may also be from trying to call another Ad when one is already being shown, so maybe try to do hideAd() right before showAdFromBottom().

For the record the ad codes will only work in Xcode, if you are trying to use them in codea it won’t work and will give errors because there is no actual function in Codea for showAdFromBottom()/hideAd().


displayMode(FULLSCREEN)
supportedOrientations(PORTRAIT_ANY)
function setup()
    ast={}
    ship=readImage("Space Art:Red Ship")
    asteroid=readImage("Space Art:Asteroid Large")
    astFreq=1.5
    astSpeed=-9
    score=0 -- starting score
    timer=0
    rectMode(CENTER)
    if readLocalData("HS")== nil then
        saveLocalData("HS", 0)
    end
    music("A Hero's Quest:Battle",true,.5)
    gameState=0
    font("Futura-CondensedExtraBold")
    fontSize(64)
    fill(0, 255, 0, 255)
    shipX=WIDTH/2
    shipY=HEIGHT/4
end
function spawn()
    table.insert(ast,vec2(math.random(96,WIDTH-96),1152))
end
function draw()
    if gameState==0 then
        background(0, 0, 0, 255)
        text("PLAY",WIDTH/2,HEIGHT/2)
        if CurrentTouch.state==BEGAN then
            if CurrentTouch.x>WIDTH/2-256 and CurrentTouch.x<WIDTH/2+256
            and CurrentTouch.y>HEIGHT/2-128 and CurrentTouch.y<HEIGHT/2+128 then
                gameState=1
                hideAd()
            end
        end
    end
    if gameState==1 then
        background(0, 0, 0, 255)
        pushStyle()
        text("Score: "..score, WIDTH/2, HEIGHT/1.2)
        popStyle()
    for a,b in pairs(ast) do
        sprite(asteroid,b.x,b.y,192,256)
        b.y=b.y+astSpeed
    end
    timer=timer+DeltaTime
    if timer>astFreq then
        spawn()
        spawn()
        spawn()
        timer=0 
        end
    for a,b in pairs(ast) do
        if b.y<-128 then
            table.remove(ast,a)
            score=score+10
        end
    end
    if CurrentTouch.x <= WIDTH / 2 and CurrentTouch.state ~= ENDED and CurrentTouch.state ~= CANCELLED then
            shipX=shipX-12
        end
    if CurrentTouch.x>WIDTH/2 and CurrentTouch.state ~= ENDED and CurrentTouch.state ~= CANCELLED then
            shipX=shipX+12
        end
    sprite(ship,shipX,shipY,64,96)
    for a,b in pairs(ast) do
            if b.y-96<=shipY+48 and b.y+160>=shipY-48 and
            b.x-96<=shipX+32 and b.x+96>=shipX-32 then
                gameState=2
                showAdFromBottom()
            end
        end
    if shipX-32<0 or shipX+32>WIDTH then
            gameState=2
            showAdFromBottom()
        end
    end
    if gameState==2 then
        background(0, 0, 0, 255)
        text("RETRY",WIDTH/2,HEIGHT/4)
        if score > readLocalData("HS") then
            saveLocalData("HS", score)
            end
        text("Score: "..score, WIDTH/2,HEIGHT/1.2)
        text("HighScore: "..readLocalData("HS"),WIDTH/2,HEIGHT/2)
        if CurrentTouch.state==BEGAN then
            if CurrentTouch.x>WIDTH/2-128 and CurrentTouch.x<WIDTH/2+128
            and CurrentTouch.y>HEIGHT/4-64 and CurrentTouch.y<HEIGHT/4+64 then
                score=0
                gameState=0
                shipX=WIDTH/2
                for i,t in pairs(ast) do ast[i]= nil
                end
            end
        end
    end
end

@ Crumble , do the ads work with iPhone?

edit: figured it out