Add 'Click Master' multiplayer game

pull/31/head
Gordon Williams 2019-11-12 17:55:13 +00:00
parent 59ce46a482
commit e25680b0c0
5 changed files with 67 additions and 0 deletions

View File

@ -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",

View File

@ -0,0 +1 @@
require("heatshrink").decompress(atob("mEwwhC/AHmIAAIWThAXCwAuVGCYuCkQwTCYOE7tIGCQSBkf/mgXUof/nsoF6kzJAQXSlvd7vSC4/d6B3L7vUC40NBQKnJwQMB7sgFwwXJGAVNBoI+ECoQJGGApgCBoZECC5YwBMAQ+C6AXFJBJWFCgoXQ6AXIJBJZGC7xIOC8Jg/C9ZIMC8RIMFhIXMU5HTnoLBJBQXIn/zRykNC5ruJn5HBRqnT9q8hXZalKCxoyICx4yFRJIA/AH4AQA=="))

50
apps/click-master.js Normal file
View File

@ -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();

5
apps/click-master.json Normal file
View File

@ -0,0 +1,5 @@
{
"name":"Click Master",
"icon": "*clickms",
"src":"-clickms"
}

BIN
apps/click-master.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB