football: Upgrade to 1.01. Works with BTN1

master
pancake 2022-06-12 02:36:39 +02:00
parent ac084fa386
commit 223ee50435
2 changed files with 56 additions and 21 deletions

View File

@ -1 +1,2 @@
1.00: Initial implementation 1.00: Initial implementation
1.01: Bug fixes and performance and visual improvements

View File

@ -1,4 +1,19 @@
// globals. TODO: move into an object
const digit = []; const digit = [];
let part = 0;
let endInc = 0;
var endGame = false;
let goalFrame = 0;
var stopped = true;
let score0 = 0;
let score1 = 0;
let inc = 0;
let msinc = 0;
let seq0 = 0;
let seq1 = 0;
let goaler = -1;
const w = g.getWidth();
let owner = -1;
const dash = { const dash = {
width: 75, width: 75,
@ -6,6 +21,7 @@ const dash = {
bpp: 1, bpp: 1,
buffer: require('heatshrink').decompress(atob('AH4A/AH4A/AH4A/AH4A/AB0D/4AB+AJEBAX/BAk/CQ8PCQ4kDCQoIDCQgkDCQgkECQgIE4ASHFxH8JRgSEEgYSEPJAkEAH4A/AH4A/AH4A/AH4A/ACg=')) buffer: require('heatshrink').decompress(atob('AH4A/AH4A/AH4A/AH4A/AB0D/4AB+AJEBAX/BAk/CQ8PCQ4kDCQoIDCQgkDCQgkECQgIE4ASHFxH8JRgSEEgYSEPJAkEAH4A/AH4A/AH4A/AH4A/ACg='))
}; };
function loadDigits () { function loadDigits () {
digit[0] = { digit[0] = {
width: 80, width: 80,
@ -58,8 +74,8 @@ function loadDigits () {
digit[7] = { digit[7] = {
width: 80, width: 80,
height: 128, height: 128,
bpp: 1, bpp: 4,
buffer: require('heatshrink').decompress(atob('AGUH/4AE/wJBgYJF/gJBgIJF+AeCBJN/BIngsAJBn4JE4HgBIMfBImBBIUPBIkDBIRQE/0HBIRQE/kPBIRQE/EfBIRQE+E/BIZQD8AJEKAfABYIJCKAYsBBIYADIAIJHKgIJHNAIJ/BP4J/BP4Jzg//4AJGgf/wAJGgP/BAwAB/wJIvgJInAJIiAJIAH5PPMZJ3JRZCfJWZLHJfM4J/BP4J/BP4JNg4JIgYJIgIJIgAJJv4JIn4JIj4JIh4JIeg4JIgYJIgIJIgAJJsAJIkAJIAH4AQA=')) buffer : require("heatshrink").decompress(atob("AH4A/AEtVADdQE5Nf/4AayAnJgoma/J4LKDR2KKDZODUMadChKhiJwefE5RQXJwbxLKCxOEE5hQVJwgnNKCZOFE5pQTJwonOKCJOGE5xQRD4Q8EE5xQPJw4nPgFZzIAMqCdFE6IARJwgnhJwonhJwonhe5In/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4nlr4mE/NQE78FE4n1Ez5QGE0JQEJ0RQETsBQFJ0gABrJOkAH4A/AH4A/ADNZqAmkgv/yAnkr///JQjJwIABypOkAAP5J0oABUMJODKAShgEwhQiE/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/E/4n/AA+fE80JE8xQGE8JQFE8JQFE8RQEE8RQEE8ZQDE8ZQDE8hQCE8hQCE8pQBE8pQBE80JE80AE84A/AH4A/AH4A/AAQA=="))
}; };
digit[8] = { digit[8] = {
@ -170,9 +186,6 @@ const gol11 = {
loadDigits(); loadDigits();
let goalFrame = 0;
let score0 = 0;
let score1 = 0;
function printNumber (n, x, y, options) { function printNumber (n, x, y, options) {
if (n > 9 || n < -1) { if (n > 9 || n < -1) {
@ -197,13 +210,7 @@ function printNumber (n, x, y, options) {
g.drawImage(img, x, y, options); g.drawImage(img, x, y, options);
} }
} }
let inc = 0;
let msinc = 0;
let seq0 = 0;
let seq1 = 0;
let goaler = -1;
const w = g.getWidth();
let owner = -1;
g.setBgColor(0, 0, 0); g.setBgColor(0, 0, 0);
g.clear(); g.clear();
g.setColor(1, 1, 1); g.setColor(1, 1, 1);
@ -247,43 +254,63 @@ function onStop () {
refresh(); refresh();
refresh_ms(); refresh_ms();
} }
var stopped = true;
Bangle.on('tap', function (pos) { function onButtonPress() {
console.log('touch', pos); console.log('on.tap');
setWatch(() => {
onButtonPress();
}, BTN1);
Bangle.beep();
if (endGame) { if (endGame) {
Bangle.beep();
score0 = 0; score0 = 0;
score1 = 0; score1 = 0;
seq0 = 0; seq0 = 0;
seq1 = 0; seq1 = 0;
part = 0;
inc = 0; inc = 0;
msinc = 0; msinc = 0;
stopped = true; stopped = true;
endGame = false; endGame = false;
} else { } else {
if (inc == 0) { if (inc == 0) {
autogame(); // autogame();
stopped = false;
} else { } else {
onStop(); onStop();
} }
} }
}
setWatch(() => {
onButtonPress();
}, BTN1);
/*Bangle.on('tap', function () {
onButtonPress();
}); });
*/
g.setFont12x20(3); g.setFont12x20(3);
let part = 0;
let endInc = 0;
var endGame = false;
function refresh () { function refresh () {
g.clear(); g.clear();
if (inc > 59) { if (inc > 59) {
inc = 0; inc = 0;
part++; part++;
} }
if (part >= 2 && inc > 30) {
part = 2;
Bangle.buzz();
endGame = true;
endInc = inc;
inc = 0;
}
if (inc > 44) { if (inc > 44) {
inc = 0;
if (part < 2) { if (part < 2) {
part++; part++;
} }
if (part >= 2) { if (part >= 2) {
if (score0 != score1) { if (score0 != score1) {
Bangle.buzz();
endGame = true; endGame = true;
endInc = inc; endInc = inc;
inc = 0; inc = 0;
@ -342,6 +369,12 @@ function refresh_pixels () {
let bx = (owner == 0) ? w / 3 : w / 2; let bx = (owner == 0) ? w / 3 : w / 2;
bx += 2; bx += 2;
g.drawImage(frame4 ? ball0 : ball1, bx, 10, { scale: 5 }); g.drawImage(frame4 ? ball0 : ball1, bx, 10, { scale: 5 });
const liney = 60;
if (owner) {
g.drawLine(w-8, liney, 2*(w/3), liney);
} else {
g.drawLine(8, liney, w/3, liney);
}
} }
let dots = 0; let dots = 0;
function refresh_dots () { function refresh_dots () {
@ -437,4 +470,5 @@ function autogame () {
} }
Bangle.setOptions({ lockTimeout: 0, backlightTimeout: 0 }); Bangle.setOptions({ lockTimeout: 0, backlightTimeout: 0 });
autogame(); // autogame();