mirror of https://github.com/espruino/BangleApps
Sweep hand now red
parent
9c2aa52e59
commit
cc68a1be1c
|
@ -229,7 +229,7 @@
|
||||||
{ "id": "sweepclock",
|
{ "id": "sweepclock",
|
||||||
"name": "Sweep Clock",
|
"name": "Sweep Clock",
|
||||||
"icon": "sweepclock.png",
|
"icon": "sweepclock.png",
|
||||||
"version":"0.01",
|
"version":"0.02",
|
||||||
"description": "Smooth sweep secondhand with single hour numeral",
|
"description": "Smooth sweep secondhand with single hour numeral",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"type":"clock",
|
"type":"clock",
|
||||||
|
|
|
@ -4,13 +4,13 @@ const screen_center_y = g.getHeight()/2;
|
||||||
require("FontCopasetic40x58Numeric").add(Graphics);
|
require("FontCopasetic40x58Numeric").add(Graphics);
|
||||||
|
|
||||||
class Hand {
|
class Hand {
|
||||||
constructor(centerX,
|
constructor(centerX,
|
||||||
centerY,
|
centerY,
|
||||||
length,
|
length,
|
||||||
tolerance,
|
tolerance,
|
||||||
draw_test,
|
draw_test,
|
||||||
red,
|
red,
|
||||||
green,
|
green,
|
||||||
blue){
|
blue){
|
||||||
this.centerX = centerX;
|
this.centerX = centerX;
|
||||||
this.centerY = centerY;
|
this.centerY = centerY;
|
||||||
|
@ -131,17 +131,18 @@ class ThickHand {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let force_redraw = false;
|
||||||
let seconds_hand = new Hand(screen_center_x,
|
let seconds_hand = new Hand(screen_center_x,
|
||||||
screen_center_y,
|
screen_center_y,
|
||||||
100,
|
100,
|
||||||
0,
|
0,
|
||||||
(angle, last_draw_time) => false,
|
(angle, last_draw_time) => false,
|
||||||
0.5,0.5,0.5);
|
1.0,0.0,0.0);
|
||||||
|
|
||||||
let minutes_hand_redraw = function(angle, last_draw_time){
|
let minutes_hand_redraw = function(angle, last_draw_time){
|
||||||
return seconds_hand.angle > angle &&
|
return force_redraw || (seconds_hand.angle > angle &&
|
||||||
Math.abs(seconds_hand.angle - angle) <2*Math.PI/25 &&
|
Math.abs(seconds_hand.angle - angle) <2*Math.PI/25 &&
|
||||||
new Date().getTime() - last_draw_time.getTime() > 500;
|
new Date().getTime() - last_draw_time.getTime() > 500);
|
||||||
};
|
};
|
||||||
|
|
||||||
let minutes_hand = new Hand(screen_center_x,
|
let minutes_hand = new Hand(screen_center_x,
|
||||||
|
@ -152,9 +153,9 @@ let minutes_hand = new Hand(screen_center_x,
|
||||||
1.0,1.0,1.0);
|
1.0,1.0,1.0);
|
||||||
|
|
||||||
let hour_hand_redraw = function(angle_from, angle_to, last_draw_time){
|
let hour_hand_redraw = function(angle_from, angle_to, last_draw_time){
|
||||||
return seconds_hand.angle >= angle_from &&
|
return force_redraw || (seconds_hand.angle >= angle_from &&
|
||||||
seconds_hand.angle <= angle_to &&
|
seconds_hand.angle <= angle_to &&
|
||||||
new Date().getTime() - last_draw_time.getTime() > 500;
|
new Date().getTime() - last_draw_time.getTime() > 500);
|
||||||
};
|
};
|
||||||
let hours_hand = new ThickHand(screen_center_x,
|
let hours_hand = new ThickHand(screen_center_x,
|
||||||
screen_center_y,
|
screen_center_y,
|
||||||
|
@ -171,6 +172,7 @@ function draw_clock(){
|
||||||
draw_seconds(date);
|
draw_seconds(date);
|
||||||
draw_mins(date);
|
draw_mins(date);
|
||||||
draw_hours(date);
|
draw_hours(date);
|
||||||
|
force_redraw = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw_seconds(date){
|
function draw_seconds(date){
|
||||||
|
@ -244,7 +246,7 @@ function clearTimers(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function startTimers(){
|
function startTimers(){
|
||||||
setTimeout(scheduleDrawClock,1000);
|
setTimeout(scheduleDrawClock,100);
|
||||||
draw_clock();
|
draw_clock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,6 +258,7 @@ function scheduleDrawClock(){
|
||||||
|
|
||||||
function reset_clock(){
|
function reset_clock(){
|
||||||
g.clear();
|
g.clear();
|
||||||
|
force_redraw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.on('lcdPower', (on) => {
|
Bangle.on('lcdPower', (on) => {
|
||||||
|
|
Loading…
Reference in New Issue