Title pretty much says it all. I need help prefacing single digits with 0’s to help minimize text size changing for my game
function setup()
CountdownSetup()
end
function draw()
background(40, 40, 50)
CountdownUpdate()
end
function CountdownSetup()
Sec, Min, Hour = 0,0,0
Time = Hour..": "..Min.."' "..string.format("%.0f",Sec)..'"'
parameter.boolean("Countdown_Status", false)
parameter.integer("Speed", 1, 1000, 1)
end
function CountdownUpdate()
Time = Hour..": "..Min.."' "..string.format("%.0f",Sec)..'"'
if Countdown_Status then
Sec = Sec + Speed/60
end
if Sec >= 59 then
Sec = 0
Min = Min + 1
elseif
Min >= 59 then
Min = 0
Hour = Hour + 1
end
pushStyle()
fill(255)
stroke(255)
strokeWidth(2)
font("AmericanTypewriter")
text(Time, WIDTH/2, HEIGHT/2)
text("00: 00' "..'00"',WIDTH/2, HEIGHT/2 - 30)
text("01: 07' "..'39"',WIDTH/2, HEIGHT/2 - 50)
line(WIDTH/2-100,HEIGHT/2-15,WIDTH/2+100,HEIGHT/2-15)
popStyle()
end
function StopTimer()
Sec, Min, Hour = 0,0,0
Countdown_Status = false
end
Also, there is a slight shift in the display as the timer runs because of the AmericanTypewriter font. Selecting some of the other fonts will eliminate that slight shift. It just depends on how the font displays each character.
There’s a problem when switching seconds to minutes and minutes to hours. A second is gained going to the next minute and a minute is gained going to the next hour.
@Spartan Just to show you a different way of doing a timer.
displayMode(FULLSCREEN)
function setup()
fill(255, 0, 0, 255)
run=0
msg="Tap to start timer"
font("Baskerville-SemiBoldItalic")
end
function draw()
background(204, 226, 200, 255)
if run==0 then
a=ElapsedTime
t=0
elseif run==1 then
t=(ElapsedTime-a)
end
s=t%60
m=(t//60)%60
h=t//3600
str=string.format("%02.f : %02.f : %04.1f",h,m,s)
fontSize(130)
text(str,WIDTH/2,HEIGHT/2)
fontSize(20)
text(msg,WIDTH/2,HEIGHT/2-80)
fontSize(15)
text("H",WIDTH/2-200,HEIGHT/2+45)
text("M",WIDTH/2+35,HEIGHT/2+45)
text("S",WIDTH/2+265,HEIGHT/2+45)
end
function touched(t)
if t.state==BEGAN then
run=(run+1)%3
if run==0 then
msg="Tap to start timer"
elseif run==1 then
msg="Tap to stop timer"
elseif run==2 then
msg="Tap to reset timer"
end
end
end
@dave1707 I addressed the slight shift by switching to a fixed-pitch font like courier, so its only a noticeable issue when it hits 100 hours, which I doubt will ever happen