Compare commits
4 commits
6b7ff7e86d
...
352c3aa16d
Author | SHA1 | Date | |
---|---|---|---|
352c3aa16d | |||
86cd935f03 | |||
4bf204cae4 | |||
bb932ff863 |
5 changed files with 92 additions and 10 deletions
|
@ -1,11 +1,42 @@
|
|||
{
|
||||
"dimensions": [32, 32],
|
||||
"world": [
|
||||
" w ",
|
||||
" w ",
|
||||
" wwwwwww w wwwwwww ",
|
||||
" w w ",
|
||||
" w w ",
|
||||
" w wwwwwwwwwwwww w ",
|
||||
" w w ",
|
||||
" w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
"www w wwwwwwwwwwwwwww w www",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w ",
|
||||
" w w ",
|
||||
" w wwwwwwwwwwwww w ",
|
||||
" w w ",
|
||||
" w w ",
|
||||
" wwwwwww w wwwwwww ",
|
||||
" w ",
|
||||
" w "
|
||||
],
|
||||
"delay": 200,
|
||||
"food": [],
|
||||
"snake": [
|
||||
[16, 12],
|
||||
[16, 11],
|
||||
[16, 10]
|
||||
[16, 3],
|
||||
[15, 3],
|
||||
[14, 3]
|
||||
],
|
||||
"rules": {
|
||||
"worldWrap": false,
|
||||
|
|
|
@ -19,5 +19,5 @@
|
|||
[6,8],
|
||||
[6,9]
|
||||
],
|
||||
"delay": 100
|
||||
"delay": 150
|
||||
}
|
||||
|
|
41
levels/level3.json
Normal file
41
levels/level3.json
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"world": [
|
||||
" w ",
|
||||
" w ",
|
||||
" wwwwwww w wwwwwww ",
|
||||
" w f w ",
|
||||
" w w ",
|
||||
" w wwwwwwwwwwwww w ",
|
||||
" w w ",
|
||||
" w f w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
"wwwf w fwwwwwwwwwwwwwwwf w fwww",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w w w ",
|
||||
" w f w ",
|
||||
" w w ",
|
||||
" w wwwwwwwwwwwww w ",
|
||||
" w w ",
|
||||
" w f w ",
|
||||
" wwwwwww w wwwwwww ",
|
||||
" w ",
|
||||
" w "
|
||||
],
|
||||
"delay": 200,
|
||||
"snake": [
|
||||
[16, 4],
|
||||
[15, 4],
|
||||
[14, 4]
|
||||
]
|
||||
}
|
|
@ -90,11 +90,10 @@
|
|||
}
|
||||
};
|
||||
currentGame=snek;
|
||||
//XXX
|
||||
window.snek=snek;
|
||||
});
|
||||
|
||||
window.addEventListener('keydown', async e => {
|
||||
e.preventDefault();
|
||||
if(e.key=='f') {
|
||||
if(document.fullscreenElement) await document.exitFullscreen();
|
||||
else await main.requestFullscreen();
|
||||
|
@ -108,7 +107,8 @@
|
|||
else if(e.key=='ArrowRight') inputs.right=true;
|
||||
});
|
||||
|
||||
window.addEventListener('touchstart', e => {
|
||||
const handleTouch=e => {
|
||||
e.preventDefault();
|
||||
let x=e.touches[0].clientX/window.innerWidth-.5;
|
||||
let y=e.touches[0].clientY/window.innerHeight-.5;
|
||||
const angle=((Math.atan2(x, y)+2*Math.PI)%(2*Math.PI))/Math.PI;
|
||||
|
@ -118,6 +118,10 @@
|
|||
else if(angle>.75 && angle<1.25) inputs.up=true;
|
||||
else if(angle>1.25 && angle<1.75) inputs.left=true;
|
||||
else inputs.down=true;
|
||||
});
|
||||
|
||||
inputs.clearBuffer=true;
|
||||
};
|
||||
window.addEventListener('touchstart', handleTouch);
|
||||
window.addEventListener('touchmove', handleTouch);
|
||||
|
||||
})();
|
||||
|
|
|
@ -322,6 +322,12 @@ class SnekGame {
|
|||
else if(inputs.right && trySet([ 1, 0])) return delete inputs.right;
|
||||
else if(inputs.up && trySet([ 0,-1])) return delete inputs.up;
|
||||
else if(inputs.down && trySet([ 0, 1])) return delete inputs.down;
|
||||
|
||||
if(inputs.clearBuffer) {
|
||||
Object
|
||||
.keys(inputs)
|
||||
.forEach(k => delete inputs[k]);
|
||||
}
|
||||
}
|
||||
|
||||
start() {
|
||||
|
|
Loading…
Reference in a new issue