fix reset, default params and timing

pull/482/head
jeffmer 2020-06-04 17:16:46 +01:00 committed by GitHub
parent 3826460ab0
commit e5cac15b8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 14 deletions

View File

@ -1,4 +1,5 @@
0.01: New App! 0.01: New App!
0.02: Updated to be more responsive re suggestion by Gordon 0.02: Updated to be more responsive re suggestion by Gordon
0.03: fix start & reset, chang eperiod to 65ms, remove timing info 0.03: fix start & reset, chang eperiod to 65ms, remove timing info
0.04: fix default parameter, replace timing

View File

@ -11,7 +11,7 @@ function flip() {
var genA = new Uint8Array(324); var genA = new Uint8Array(324);
var genB = new Uint8Array(324); var genB = new Uint8Array(324);
var generation=0; var generation=0;
//var start=Date.now(); var gentime=0;
var currentY=1; var currentY=1;
function initDraw(gen){ function initDraw(gen){
@ -29,18 +29,17 @@ function initDraw(gen){
} }
function howlong(){ function howlong(){
// var now = Date.now();
// const duration = Math.floor(now-start);
// start=now;
++generation; ++generation;
g.setFont("6x8",2); g.setFont("6x8",2);
g.setFontAlign(-1,-1,0); g.setFontAlign(-1,-1,0);
// g.drawString('Gen:'+generation+' '+duration+'ms ',20,220,true); gentime = Math.floor(gentime);
g.drawString('Gen:'+generation+' ',20,220,true); g.drawString('Gen:'+generation+' '+gentime+'ms ',20,220,true);
gentime=0;
} }
function next(){ function next(){
"ram"; "ram";
var start = Date.now();
var cur=genA, fut=genB, y=currentY; var cur=genA, fut=genB, y=currentY;
var count=(p)=>{return cur[p-19]+cur[p-18]+cur[p-17]+cur[p-1]+cur[p+1]+cur[p+17]+cur[p+18]+cur[p+19];}; var count=(p)=>{return cur[p-19]+cur[p-18]+cur[p-17]+cur[p-1]+cur[p+1]+cur[p+17]+cur[p+18]+cur[p+19];};
for (let x = 1; x<17; ++x){ for (let x = 1; x<17; ++x){
@ -54,6 +53,7 @@ function next(){
buf.fillRect(Xr,Yr, Xr+7,Yr+7); buf.fillRect(Xr,Yr, Xr+7,Yr+7);
} }
} }
gentime+=(Date.now()-start);
if (y==16){ if (y==16){
flip(); flip();
var tmp = genA; genA=genB; genB=tmp; var tmp = genA; genA=genB; genB=tmp;
@ -69,7 +69,8 @@ function stopdraw() {
if(intervalRef) {clearInterval(intervalRef);} if(intervalRef) {clearInterval(intervalRef);}
} }
function startdraw(init=false) { function startdraw(init) {
if (init===undefined) init=false;
if(!init) g.clear(); if(!init) g.clear();
Bangle.drawWidgets(); Bangle.drawWidgets();
g.reset(); g.reset();
@ -82,19 +83,20 @@ function startdraw(init=false) {
if(!init) intervalRef = setInterval(next,65); if(!init) intervalRef = setInterval(next,65);
} }
function reset(){ function regen(){
stopdraw(); stopdraw();
g.setColor(1,1,1); g.setColor(1,1,1);
initDraw(genA); initDraw(genA);
currentY=1; currentY=1;
generation = 0; generation = 0;
gentime=0;
intervalRef = setInterval(next,65); intervalRef = setInterval(next,65);
} }
function setButtons(){ function setButtons(){
setWatch(()=>{load();}, BTN1, {repeat:false,edge:"falling"}); setWatch(()=>{load();}, BTN1, {repeat:false,edge:"falling"});
setWatch(Bangle.showLauncher, BTN2, {repeat:false,edge:"falling"}); setWatch(Bangle.showLauncher, BTN2, {repeat:false,edge:"falling"});
setWatch(reset, BTN3, {repeat:true,edge:"rising"}); setWatch(regen, BTN3, {repeat:true,edge:"rising"});
} }
var SCREENACCESS = { var SCREENACCESS = {
@ -122,7 +124,7 @@ function reset(){
g.clear(); g.clear();
Bangle.loadWidgets(); Bangle.loadWidgets();
reset(); regen();
startdraw(true); startdraw(true);
setButtons(); setButtons();

View File

@ -1,4 +1,5 @@
Bangle.setLCDTimeout(30);var buf=Graphics.createArrayBuffer(160,160,1,{msb:!0});function flip(){g.setColor(1,1,1);g.drawImage({width:160,height:160,bpp:1,buffer:buf.buffer},40,40);buf.clear()}var genA=new Uint8Array(324),genB=new Uint8Array(324),generation=0,currentY=1;function initDraw(a){for(var f=1;17>f;++f)for(var d=1;17>d;++d){var c=.5>Math.random()?1:0;a[d+18*f]=c;if(1==c){c=10*(d-1);var b=10*(f-1);buf.fillRect(c,b,c+7,b+7)}}flip()} Bangle.setLCDTimeout(30);var buf=Graphics.createArrayBuffer(160,160,1,{msb:!0});function flip(){g.setColor(1,1,1);g.drawImage({width:160,height:160,bpp:1,buffer:buf.buffer},40,40);buf.clear()}var genA=new Uint8Array(324),genB=new Uint8Array(324),generation=0,gentime=0,currentY=1;function initDraw(c){for(var a=1;17>a;++a)for(var h=1;17>h;++h){var d=.5>Math.random()?1:0;c[h+18*a]=d;if(1==d){d=10*(h-1);var f=10*(a-1);buf.fillRect(d,f,d+7,f+7)}}flip()}
function howlong(){++generation;g.setFont("6x8",2);g.setFontAlign(-1,-1,0);g.drawString("Gen:"+generation+" ",20,220,!0)}function next(){"ram";for(var a=genA,f=genB,d=currentY,c=1;17>c;++c){var b=c+18*d,e=a[b-19]+a[b-18]+a[b-17]+a[b-1]+a[b+1]+a[b+17]+a[b+18]+a[b+19];e=1==a[b]&&2==e||3==e?1:0;f[b]=e;1==e&&(b=10*(c-1),e=10*(d-1),buf.fillRect(b,e,b+7,e+7))}16==d?(flip(),a=genA,genA=genB,genB=a,howlong(),currentY=1):++currentY}var intervalRef=null; function howlong(){++generation;g.setFont("6x8",2);g.setFontAlign(-1,-1,0);gentime=Math.floor(gentime);g.drawString("Gen:"+generation+" "+gentime+"ms ",20,220,!0);gentime=0}
function stopdraw(){intervalRef&&clearInterval(intervalRef)}function startdraw(a){(a=void 0===a?!1:a)||g.clear();Bangle.drawWidgets();g.reset();g.setColor(1,1,1);g.setFont("6x8",1);g.setFontAlign(0,0,3);g.drawString("RESET",230,200);g.drawString("LAUNCH",230,130);g.drawString("CLOCK",230,60);a||(intervalRef=setInterval(next,65))}function reset(){stopdraw();g.setColor(1,1,1);initDraw(genA);currentY=1;generation=0;intervalRef=setInterval(next,65)} function next(){"ram";for(var c=Date.now(),a=genA,h=genB,d=currentY,f=1;17>f;++f){var b=f+18*d,e=a[b-19]+a[b-18]+a[b-17]+a[b-1]+a[b+1]+a[b+17]+a[b+18]+a[b+19];e=1==a[b]&&2==e||3==e?1:0;h[b]=e;1==e&&(b=10*(f-1),e=10*(d-1),buf.fillRect(b,e,b+7,e+7))}gentime+=Date.now()-c;16==d?(flip(),c=genA,genA=genB,genB=c,howlong(),currentY=1):++currentY}var intervalRef=null;function stopdraw(){intervalRef&&clearInterval(intervalRef)}
function setButtons(){setWatch(function(){load()},BTN1,{repeat:!1,edge:"falling"});setWatch(Bangle.showLauncher,BTN2,{repeat:!1,edge:"falling"});setWatch(reset,BTN3,{repeat:!0,edge:"rising"})}var SCREENACCESS={withApp:!0,request:function(){this.withApp=!1;stopdraw();clearWatch()},release:function(){this.withApp=!0;startdraw();setButtons()}};Bangle.on("lcdPower",function(a){SCREENACCESS.withApp&&(a?startdraw():stopdraw())});g.clear();Bangle.loadWidgets();reset();startdraw(!0);setButtons(); function startdraw(c){void 0===c&&(c=!1);c||g.clear();Bangle.drawWidgets();g.reset();g.setColor(1,1,1);g.setFont("6x8",1);g.setFontAlign(0,0,3);g.drawString("RESET",230,200);g.drawString("LAUNCH",230,130);g.drawString("CLOCK",230,60);c||(intervalRef=setInterval(next,65))}function regen(){stopdraw();g.setColor(1,1,1);initDraw(genA);currentY=1;gentime=generation=0;intervalRef=setInterval(next,65)}
function setButtons(){setWatch(function(){load()},BTN1,{repeat:!1,edge:"falling"});setWatch(Bangle.showLauncher,BTN2,{repeat:!1,edge:"falling"});setWatch(regen,BTN3,{repeat:!0,edge:"rising"})}var SCREENACCESS={withApp:!0,request:function(){this.withApp=!1;stopdraw();clearWatch()},release:function(){this.withApp=!0;startdraw();setButtons()}};Bangle.on("lcdPower",function(c){SCREENACCESS.withApp&&(c?startdraw():stopdraw())});g.clear();Bangle.loadWidgets();regen();startdraw(!0);setButtons();