Support Bangles 1&2
parent
80246d2398
commit
0342b13124
|
|
@ -1,15 +1,13 @@
|
||||||
|
|
||||||
|
|
||||||
class TwoK {
|
class TwoK {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.b = Array(4).fill().map(() => Array(4).fill(0));
|
this.b = Array(4).fill().map(() => Array(4).fill(0));
|
||||||
this.score = 0;
|
this.score = 0;
|
||||||
this.cmap = {0: "#caa", 2:"#ccc", 4: "#bcc", 8: "#ba6", 16: "#e61", 32: "#d20", 64: "#d00", 128: "#da0", 256: "#ec0", 512: "#dd0"};
|
this.cmap = {0: "#caa", 2:"#ccc", 4: "#bcc", 8: "#ba6", 16: "#e61", 32: "#d20", 64: "#d00", 128: "#da0", 256: "#ec0", 512: "#dd0"};
|
||||||
}
|
}
|
||||||
drawBRect(x1, y1, x2, y2, th, c, cf) {
|
drawBRect(x1, y1, x2, y2, th, c, cf, fill) {
|
||||||
g.setColor(c);
|
g.setColor(c);
|
||||||
for (i=0; i<th; ++i) g.drawRect(x1+i, y1+i, x2-i, y2-i);
|
for (i=0; i<th; ++i) g.drawRect(x1+i, y1+i, x2-i, y2-i);
|
||||||
g.setColor(cf).fillRect(x1+th, y1+th, x2-th, y2-th);
|
if (fill) g.setColor(cf).fillRect(x1+th, y1+th, x2-th, y2-th);
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
const yo = 20;
|
const yo = 20;
|
||||||
|
|
@ -18,13 +16,13 @@ class TwoK {
|
||||||
w = g.getWidth()-yo;
|
w = g.getWidth()-yo;
|
||||||
bh = Math.floor(h/4);
|
bh = Math.floor(h/4);
|
||||||
bw = Math.floor(w/4);
|
bw = Math.floor(w/4);
|
||||||
g.clear().setFontAlign(0, 0, 0);
|
g.clearRect(0, 0, g.getWidth()-1, yo).setFontAlign(0, 0, 0);
|
||||||
g.setFont("Vector", 16).setColor("#fff").drawString("Score:"+this.score.toString(), g.getWidth()/2, 8);
|
g.setFont("Vector", 16).setColor("#fff").drawString("Score:"+this.score.toString(), g.getWidth()/2, 8);
|
||||||
this.drawBRect(xo-2, yo-2, xo+w+2, yo+h, 2, "#a88", "#caa");
|
this.drawBRect(xo-2, yo-2, xo+w+2, yo+h, 2, "#a88", "#caa", false);
|
||||||
for (y=0; y<4; ++y)
|
for (y=0; y<4; ++y)
|
||||||
for (x=0; x<4; ++x) {
|
for (x=0; x<4; ++x) {
|
||||||
b = this.b[y][x];
|
b = this.b[y][x];
|
||||||
this.drawBRect(xo+x*bw, yo+y*bh-2, xo+(x+1)*bh-1, yo+(y+1)*bh-1-2, 4, "#a88", this.cmap[b]);
|
this.drawBRect(xo+x*bw, yo+y*bh-2, xo+(x+1)*bh, yo+(y+1)*bh-2, 4, "#a88", this.cmap[b], true);
|
||||||
if (b > 4) g.setColor(1, 1, 1);
|
if (b > 4) g.setColor(1, 1, 1);
|
||||||
else g.setColor(0, 0, 0);
|
else g.setColor(0, 0, 0);
|
||||||
g.setFont("Vector", bh*(b>8 ? (b>64 ? (b>512 ? 0.32 : 0.4) : 0.6) : 0.7));
|
g.setFont("Vector", bh*(b>8 ? (b>64 ? (b>512 ? 0.32 : 0.4) : 0.6) : 0.7));
|
||||||
|
|
@ -38,14 +36,14 @@ class TwoK {
|
||||||
for (x=2; x>=0; x--)
|
for (x=2; x>=0; x--)
|
||||||
if (this.b[y][x]==0) {
|
if (this.b[y][x]==0) {
|
||||||
for (i=x; i<3; i++) this.b[y][i] = this.b[y][i+1];
|
for (i=x; i<3; i++) this.b[y][i] = this.b[y][i+1];
|
||||||
this.b[y][3] = 0; moved = true;
|
this.b[y][3] = 0;
|
||||||
}
|
}
|
||||||
for (x=0; x<3; ++x)
|
for (x=0; x<3; ++x)
|
||||||
if (this.b[y][x]==this.b[y][x+1]) {
|
if (this.b[y][x]==this.b[y][x+1]) {
|
||||||
this.score += 2*this.b[y][x];
|
this.score += 2*this.b[y][x];
|
||||||
this.b[y][x] += this.b[y][x+1];
|
this.b[y][x] += this.b[y][x+1];
|
||||||
for (j=x+1; j<3; ++j) this.b[y][j] = this.b[y][j+1];
|
for (j=x+1; j<3; ++j) this.b[y][j] = this.b[y][j+1];
|
||||||
this.b[y][3] = 0; moved = true;
|
this.b[y][3] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -123,7 +121,20 @@ function dragHandler(e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function swipeHandler() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function buttonHandler() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var twok = new TwoK();
|
var twok = new TwoK();
|
||||||
twok.addDigit(); twok.addDigit();
|
twok.addDigit(); twok.addDigit();
|
||||||
twok.render();
|
twok.render();
|
||||||
Bangle.on("drag", dragHandler);
|
if (process.env.HWVERSION==2) Bangle.on("drag", dragHandler);
|
||||||
|
else if (process.env.HWVERSION==1) {
|
||||||
|
Bangle.on("swipe", (e) => { res = twok.shift(e); if (res) twok.addDigit(); twok.render(); });
|
||||||
|
setWatch(() => { res = twok.shift(2); if (res) twok.addDigit(); twok.render(); }, BTN1, {repeat: true});
|
||||||
|
setWatch(() => { res = twok.shift(-2); if (res) twok.addDigit(); twok.render(); }, BTN3, {repeat: true});
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,5 @@
|
||||||
|
|
||||||
Tile shifting game inspired by the well known 2048 game. Also very similar to another Bangle game, Game1024.
|
Tile shifting game inspired by the well known 2048 game. Also very similar to another Bangle game, Game1024.
|
||||||
|
|
||||||
Attempt to combine equal numbers by swiping left, right, up or down.
|
Attempt to combine equal numbers by swiping left, right, up or down (on Bangle 2) or swiping left/right and using
|
||||||
|
the top/bottom button (Bangle 1).
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.01",
|
"version":"0.01",
|
||||||
"description": "Bangle version of a tile shifting game",
|
"description": "Bangle version of a tile shifting game",
|
||||||
"supports" : ["BANGLEJS2"],
|
"supports" : ["BANGLEJS1","BANGLEJS2"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue