Howdy, Stranger!

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

In this Discussion

Enhance your video recordings

edited February 2012 in Code Sharing Posts: 2,818

Hello,
When I upgraded to 1.3, I noticed that the recodings do not include recording of the keyboard and touches. So I went a little farther and created this library to enhance your recordings. It's a little sloppy right now, but it will do.

function setup()
    touches = {}
    showKeyboard()
end

function draw()
    background(0, 0, 0, 255)
    enchanceRecording(CurrentTouch.x, CurrentTouch.y,1)
end

function enchanceRecording(gravx,gravy,shoingkeyboard)
    local buffer = keyboardBuffer()
    local _, gravh = textSize(Gravity.x)
    if isRecording() then
        font("HelveticaNeue")
        fill(179, 179, 179, 127)
        stroke(255, 255, 255, 127)
        strokeWidth(3)
        for k,touch in pairs(touches) do
            ellipse(touch.x, touch.y, 100, 100)
        end
        if shoingkeyboard == 1 then
            if buffer == nil then buffer = " " end
            textWrapWidth(WIDTH)
            if WIDTH == 1024 and HEIGHT == 768 or WIDTH == 750 and HEIGHT == 768 then
                rect(0,0,WIDTH,HEIGHT/2-30)
                fill(255, 0, 0, 255)
                text("Typed text:".. buffer,WIDTH/2,(HEIGHT/2-30)/2)
            elseif WIDTH == 768 and HEIGHT == 1024 or WIDTH == 494 and HEIGHT == 1024 then
                rect(0,0,WIDTH,HEIGHT/3-75)
                fill(255, 0, 0, 255)
                text("Typed text:".. buffer,WIDTH/2,(HEIGHT/3-75)/2)
            end
            fill(30, 255, 0, 255)
            text("Gravity X: ".. Gravity.x,gravx,gravy)
            text("Gravity Y: ".. Gravity.y,gravx,gravy-gravh)
            text("Gravity Z: ".. Gravity.z,gravx,gravy-gravh*2)
            text("User Acceleration X: ".. UserAcceleration.x,gravx,gravy-gravh*4)
            text("User Acceleration Y: ".. UserAcceleration.y,gravx,gravy-gravh*5)
            text("User Acceleration Z: ".. UserAcceleration.z,gravx,gravy-gravh*6)
        end
    end 
end


function touched(touch)
    if touch.state == ENDED then
        touches[touch.id] = nil
    else
        touches[touch.id] = touch
    end
end

That turns out like this:


If the video doesn't work, click here.

Here is the link.

What's left to do? This:
1. Get rid of all the unnecessary numbers in the user acceleration and gravity.
2. And a few other small things I don't feel like listing right now.
Have fun!

Comments

  • SimeonSimeon Admin Mod
    edited February 2012 Posts: 4,031

    That's pretty cool, @Zoyt. Looks pretty useful for debugging.

    The video seems to not embed properly, so you might want to edit your post to contain the link as well.

    Edit: @Zoyt please edit your existing posts to add extra information, don't reply to the topic. I've moved your replies into the OP.

  • edited February 2012 Posts: 2,818

    @Siemon - I was in the middle of the process of editing it. I usually do. Thanks!

    It works only on the mac.

  • SimeonSimeon Admin Mod
    Posts: 4,031

    Again, please don't add multiple replies to a topic. Just edit your existing posts instead of replying.

    That said, this is a really good idea. I like the implementation.

  • edited October 2012 Posts: 2,818

    Just though I might update this to take advantage of the isKeyboardShowing() and images features. Here's the code:


    function setup() touches = {} iparameter("ShowKeyboard",0,1) iparameter("ti",1,2) end function draw() background(0, 0, 0, 255) if ShowKeyboard == 1 then showKeyboard() else hideKeyboard() end enchanceRecording(CurrentTouch.x, CurrentTouch.y) end function enchanceRecording(gravx,gravy) local buffer = keyboardBuffer() local _, gravh = textSize(Gravity.x) if isRecording() then font("HelveticaNeue") fill(179, 179, 179, 127) stroke(255, 255, 255, 127) strokeWidth(3) for k,touch in pairs(touches) do if ti == 1 then ellipse(touch.x, touch.y, 100, 100) else tint(0, 0, 0, 127) sprite("Tyrian Remastered:Energy Orb 1",touch.x, touch.y,750, 750) end end if isKeyboardShowing() then if buffer == nil then buffer = " " end textWrapWidth(WIDTH) if WIDTH == 1024 and HEIGHT == 768 or WIDTH == 750 and HEIGHT == 768 then rect(0,0,WIDTH,HEIGHT/2-30) fill(255, 0, 0, 255) text("Typed text:".. buffer,WIDTH/2,(HEIGHT/2-30)/2) elseif WIDTH == 768 and HEIGHT == 1024 or WIDTH == 494 and HEIGHT == 1024 then rect(0,0,WIDTH,HEIGHT/3-75) fill(255, 0, 0, 255) text("Typed text:".. buffer,WIDTH/2,(HEIGHT/3-75)/2) end --Debug features: --fill(30, 255, 0, 255) --text("Gravity X: ".. Gravity.x,gravx,gravy) --text("Gravity Y: ".. Gravity.y,gravx,gravy-gravh) --text("Gravity Z: ".. Gravity.z,gravx,gravy-gravh*2) --text("User Acceleration X: ".. UserAcceleration.x,gravx,gravy-gravh*4) --text("User Acceleration Y: ".. UserAcceleration.y,gravx,gravy-gravh*5) --text("User Acceleration Z: ".. UserAcceleration.z,gravx,gravy-gravh*6) end end end function touched(touch) if touch.state == ENDED then touches[touch.id] = nil else touches[touch.id] = touch end end

    I haven't coded in Codea for a while, so this is not one of my best works.

Sign In or Register to comment.