Tint bug - SOLVED - not a bug!

Hi, I’ve been trying to tint a sprite to no avail.

The code I’m using in the draw function is


And nothing happens. Am I missing something or is this function redundant now?

The Major

Did you try tinting it to a different color? That works for me…I wonder why white doesn’t work anymore? I could try coding you a function that takes a sprite as an argument and tints it to white if you really needed it.

If you trying tint to white it wont tint your image

Ah I see @lupino8211 that makes sense.

So I’ve changed the tint to 255,255,5,255 which is a hello and it tints every object below that too in terms of depth

Thanks @TheSoldierKing it’s a flash I’m trying to build in when you shoot something like the old arcade and 8bit shooters the object flashes white briefly per hit

Here ya go, as well as with an example that shows how to use it.

-- Example

-- Use this function to perform your initial setup
function setup()
    img1 = readImage("Planet Cute:Character Boy")
    img2 = tintImage(img1)
    frame = 0
    curImg = img1

-- This function gets called once every frame
function draw()
    -- This sets a dark background color 

    -- This sets the line thickness
    -- Do your drawing here
    if frame<60 or frame>70 then 
        curImg = img1
    else curImg = img2
    sprite(curImg, WIDTH/2, HEIGHT/2)
    frame = frame + 1
    text(math.floor(1/DeltaTime), WIDTH-10, HEIGHT-10)

function tintImage(img)
    local i = img
    local w,h = spriteSize(img)
    local endImg = image(w,h)
    local col = color()
    for x=1,w do
        for y=1,h do
            col.r,col.g,col.b,col.a = i:get(x,y)
            if col.a~=0 then
                col.r,col.g,col.b = 255, 255, 255
    return endImg

Just as a side note, you probably want to make a new image in setup rather than calling this function every frame, as with large images this might cause crashes due to lack of memory. Also, it would ruin your framerate.
EDIT: I just tried calling it in draw(), I got a framerate of 8. Yeah, don’t do that. Create a new image in setup and change it when you need to.

You already have a thread on this subject. I just posted a solution in the other thread.

Hey @TheSoldierKing thanks for exploring I think I saw tint as a one line option to keep the code down. I Think you’re right about a new image. I’ll do that.

Hey @yojimbo2000 you’re right although over in that thread I was trying to tint a mesh and over here a sprite. I’ll go take a look.

Thanks to you both for the explorations and explanations!!