GameZero.jl icon indicating copy to clipboard operation
GameZero.jl copied to clipboard

How to prevent clearing of the screen?

Open jeffchiou opened this issue 2 years ago • 2 comments

For example, I want this to result in tracing a line along w's history of positions.

function draw(g::Game)
    draw(Circle(w.x, w.y, 1), colorant"gray")
end

For me it just shows the circle moving about as determined by w's update function, while I'm expecting many little circles showing w's trajectory.

It seems in certain examples you had to clear the canvas by adding clear() or fill()? But for me I see no difference. https://docs.juliahub.com/GameZero/tTDGf/0.2.1/examples/basic2/

function draw()
    fill(current_color)
    ...

https://docs.juliahub.com/GameZero/tTDGf/0.2.1/examples/Breakout/

function draw()
    clear()
    ...

Is what I'm asking for possible? Sorry if I'm missing something obvious, I'm fairly new to Julia.

jeffchiou avatar Sep 10 '22 23:09 jeffchiou

Looked in the source a bit, found that if I remove the clear here I get what I want

function mainloop(g::Game)
    ...
      # Render
      #if (debug && debugText) renderFPS(renderer,last_10_frame_times) end
        clear(g.screen)
        Base.invokelatest(g.render_function, g)
    ....

Perhaps it would be a good idea to include an option to specify whether you want to auto-clear after every frame?

jeffchiou avatar Sep 12 '22 18:09 jeffchiou

We could make it default to auto-clear and then allow for a flag that disables it.

function draw(g::Game)
    # auto-clears
end

function draw(g::Game, noclear=true)
    # no auto-clear
end

scottbigbrain avatar Aug 03 '23 19:08 scottbigbrain