mirror of https://github.com/espruino/BangleApps
Add 'Click Master' multiplayer game
parent
59ce46a482
commit
e25680b0c0
11
apps.json
11
apps.json
|
@ -82,6 +82,17 @@
|
|||
{"name":"*astroid","url":"asteroids-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "clickms",
|
||||
"name": "Click Master",
|
||||
"icon": "click-master.png",
|
||||
"description": "Get several friends to start the game, then compete to see who can press BTN1 the most!",
|
||||
"tags": "game",
|
||||
"storage": [
|
||||
{"name":"+clickms","url":"click-master.json"},
|
||||
{"name":"-clickms","url":"click-master.js"},
|
||||
{"name":"*clickms","url":"click-master-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "compass",
|
||||
"name": "Compass",
|
||||
"icon": "compass.png",
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwwhC/AHmIAAIWThAXCwAuVGCYuCkQwTCYOE7tIGCQSBkf/mgXUof/nsoF6kzJAQXSlvd7vSC4/d6B3L7vUC40NBQKnJwQMB7sgFwwXJGAVNBoI+ECoQJGGApgCBoZECC5YwBMAQ+C6AXFJBJWFCgoXQ6AXIJBJZGC7xIOC8Jg/C9ZIMC8RIMFhIXMU5HTnoLBJBQXIn/zRykNC5ruJn5HBRqnT9q8hXZalKCxoyICx4yFRJIA/AH4AQA=="))
|
|
@ -0,0 +1,50 @@
|
|||
var ME = "-= ME =-";
|
||||
var mycounter = 0;
|
||||
var players = {};
|
||||
setWatch(x=>{
|
||||
mycounter++;
|
||||
updateAdvertising();
|
||||
},BTN1,{repeat:true});
|
||||
|
||||
function updateAdvertising() {
|
||||
try {
|
||||
NRF.setAdvertising({},{
|
||||
manufacturer: 0x0590,
|
||||
manufacturerData: new Uint8Array([mycounter>>8,mycounter&255])
|
||||
});
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
function drawPlayers() {
|
||||
g.clear(1);
|
||||
g.setFont("6x8",2);
|
||||
var l = [{name:ME,cnt:mycounter}];
|
||||
for (p of players) l.push(p);
|
||||
l.sort((a,b)=>a.cnt-b.cnt);
|
||||
var y=0;
|
||||
l.forEach(player=>{
|
||||
if (player.name==ME) g.setColor(1,0,0);
|
||||
else g.setColor(1,1,1);
|
||||
g.drawString(player.name,10,y);
|
||||
g.drawString(player.cnt,180,y);
|
||||
y+=16;
|
||||
});
|
||||
}
|
||||
|
||||
function doScan() {
|
||||
NRF.findDevices(devs=>{
|
||||
devs.forEach(dev => {
|
||||
players[dev.id] = {
|
||||
name : dev.id.substr(12,5),
|
||||
cnt : (dev.manufacturerData[0]<<8)|dev.manufacturerData[1]
|
||||
};
|
||||
});
|
||||
drawPlayers();
|
||||
doScan();
|
||||
},{timeout : 1000, filters : [{ manufacturerData:{0x0590:{}} }] });
|
||||
}
|
||||
|
||||
drawPlayers();
|
||||
try { NRF.wake(); } catch (e) {}
|
||||
doScan();
|
||||
updateAdvertising();
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"name":"Click Master",
|
||||
"icon": "*clickms",
|
||||
"src":"-clickms"
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Loading…
Reference in New Issue