Comments 67
Давай Doom уже!
UFO just landed and posted this here
Ну зачем Вы так?! Работа же встала…
UFO just landed and posted this here
Боюсь рассказывать о Super Hexagon (упс, уже)
Кстати, у него есть ранняя бесплатная браузерная версия terrycavanaghgames.com/hexagon
Жаль, не на весь экран, как полноценный SH.
Кстати, у него есть ранняя бесплатная браузерная версия terrycavanaghgames.com/hexagon
Жаль, не на весь экран, как полноценный SH.
Нет вам прощенья! Пятиугольник не могу пройти… Кстати музыка забористая, особо после 40-ой секунды где-то начинается
Советую заинтересовавшимся приобрести все таки полную версию, она стоит полтора бакса в Стиме. В браузерной версии, как мне показалось, присутствует небольшой лаг в управлении, да и по качеству она, понятное дело, уступает.
В браузерной версии ещё столкновение сбоку — смерть. Хотя полностью прошёл полноценный Super Hexagon, а флэшевый Hexagon разгоняется до гора-а-аздо меньших скоростей, привычка долбиться в стены меня добивала.
Ахаха, в стиме:
Спасибо, добавил в список желаемого, куплю чуть позже (оказывается в стиме покупать из Китая за русские электронные деньги совсем не тривиально)
Важные сведения о гексагонах (шестиугольниках):
Несмотря на то, что слово «гексагон» может показаться трудным для поиска рифмы к нему, на самом деле есть десятки слов, которые рифмуются с ним. Например: автобан, декагон, электрон, Кыргызстан, лепрекон и марафон.
Спасибо, добавил в список желаемого, куплю чуть позже (оказывается в стиме покупать из Китая за русские электронные деньги совсем не тривиально)
Меня там больше всего порадовали уровни сложности. Самый простой уровень называется hard, потом открывается harder, hardest, hardester, hardestest и конечно же hardestestest. Лучших результатов достиг на планшете, на втором месте по удобности пк-версия с клавой, на последнем месте пк-версия с геймпадом.
UFO just landed and posted this here
Добили) Это вообще зараза :)
ctrl+shift+I, esc, window.Game.Earn(10000000000000000);
Тогда вот ещё контрольный выстрел.
Еще есть drmeth.com/
7.7 сек. Больше не смог ))
Пфффффф
Говорят 16 секунд это предел…
Чёрт, тут ещё и направление рандомное. Когда я играл в первый раз, хоть траекторию можно было запомнить.
Проблема в том, что там мышиное управление, а это худший из возможных вариантов в таких играх. Неверующим предлагается провести десяток часов за игрой в Тохо.
UFO just landed and posted this here
А это хорошая мысль, сейчас добавлю.
Надо уж тогда «ровными» числами пользоваться: 16, 32, 64, 128,…
В данном случае и обёртка тегом
В данном случае и обёртка тегом
Это называется Code Golf. На SO, например, такой тег есть.
На SO есть даже целый сайт codegolf.stackexchange.com
Ждем Diablo в 30 строчек
если у строки длина 2^64 то вполне и в одну поместится :)
UFO just landed and posted this here
Ой факт...)) В такую одну строку поместятся все игры в мире вместе взятые, и все библиотеки мира и вообще все, что только у нас есть :)
Хм, на Хабре объявлена неделя «30 строк кода»?
подкидываю идею — Alien Invaders
blocks.splice( i, 1);
i--;
blocks.splice( --i, 1);
же
blocks.splice( i--, 1);
Это уже не 30 строк будет :)
Ну здесь по коду все же нужен постфиксный оператор
но да, верно. Привычка разделять действия в данном случае неуместна :)
blocks.splice( i--, 1);
но да, верно. Привычка разделять действия в данном случае неуместна :)
Даешь PacMan! Да чтоб со звуком, иначе не катит.
Вы забыли слово «крошечная» в названии
Небольшой баг: если подвести курсор близко к правой границе, «машинка» прячется за ней. Так можно ставить рекорды :-)
А ты, username, написал код в 30 строк?!
фарш
var wrapper = document.getElementById('wrapper'), keyCode = 0, tank1 = document.getElementById('tank1'), tanks = [], step, fPoint = function(x, y) { return document.elementFromPoint(x + 20, y + 20); };
var addElem = function(elem, className, css, attrs) {
var newD = document.createElement(elem);
newD.className = className;
newD.style.cssText = css;
if(attrs != undefined) { newD.setAttribute(attrs, ''); }
wrapper.appendChild(newD);
return newD;
};
setInterval(function() {
if(tanks.length < 2) {
var n_el = addElem('div', 'tank2', '', 'tank2');
n_el.style.left = 200;
n_el.style.top = 80;
tanks.push(n_el);
}
for(var i=0; i < tanks.length;i++) {
var step = Math.round(Math.random()) == 0?40:-40;
if(fPoint(parseInt(tanks[i].style.left)+step + 20, parseInt(tanks[i].style.top) + 20) != null && fPoint(parseInt(tanks[i].style.left)+step + 20, parseInt(tanks[i].style.top) + 20).getAttribute('id') == 'wrapper') tanks[i].style.left = parseInt(tanks[i].style.left)+step, tanks[i].className = step < 0 ? 'to_left' : 'to_right';
else if(fPoint(parseInt(tanks[i].style.left) + 20, parseInt(tanks[i].style.top)+step + 20) != null && fPoint(parseInt(tanks[i].style.left) + 20, parseInt(tanks[i].style.top)+step + 20).getAttribute('id') == 'wrapper') tanks[i].style.top = parseInt(tanks[i].style.top)+step, tanks[i].className = step < 0 ? 'to_top' : 'to_bottom';
}
}, 500);
var to_left = 40, to_top = 40;
document.onkeydown = function (event) {
to_left = (event.keyCode == 39)?(to_left >=420 ? to_left : (to_left + 40)):(event.keyCode == 37)?(to_left <= 0 ? 0 : to_left - 40):to_left;
to_top = (event.keyCode == 38)?(to_top <= 0 ? 0 : to_top - 40):(event.keyCode == 40)?(to_top >=280 ? 280 : to_top + 40):to_top;
console.log(to_left, to_top);
if(document.elementFromPoint(to_left+20, to_top+20).getAttribute('id') == 'wrapper') tank1.style.left = to_left, tank1.style.top = to_top;
else to_left = parseInt(tank1.style.left), to_top = parseInt(tank1.style.top);
}
ТАНЧИКИИ!!!
UFO just landed and posted this here
990 points
Шок! Полноценный Javascript одной строкой!
Это нужно видеть!
eval()
1029 =)
Так, я в обязательном порядке требую Space Invaders! Можно и в 31 строку кода, но не больше 32.
Внесу свои 5 копеек :) jsfiddle.net/SiDChik/2JEEH/18/embedded/result/
JS
(function(canvas, width, height, playersize, speed, acc){
var ctx = canvas.getContext('2d');
canvas.width = width; canvas.height = height; px=100; py=0; blocks_tick=0.2; p_acc=0;to_x=100;points=0;can_jump=0;
var blocks=[];
timer = setInterval(function(){
ctx.clearRect(0,0,width,height);
p_acc += 0.2; if (p_acc>10){p_acc=10;} py += p_acc;speed+=acc;points+=1;can_jump-=1;
if (to_x<px){px-=6;}if (to_x>px){px+=6;}
if (Math.random()<blocks_tick){
blocks.push({'x': width, 'y': Math.random()*height, 'size': Math.random()*40 + 20});
}
for (var i=0; i<blocks.length;i++){
blocks[i]['x'] -= speed;
ctx.fillStyle='#333'; ctx.fillRect(blocks[i]['x'], blocks[i]['y'], blocks[i]['size'], 10);
if ((blocks[i]['x'] + blocks[i]['size'] >= px) && (blocks[i]['x'] <= px + playersize) && (blocks[i]['y'] + 10 >= py) && (blocks[i]['y'] <= py + playersize)){
if ((p_acc>0) && (can_jump<0)){
p_acc=-8;can_jump = 30;py=blocks[i]['y']-playersize;
}
else{p_acc = -p_acc;py=blocks[i]['y']+10;}
}
if (blocks[i]['x']+blocks[i]['size']<0){blocks.splice(i--,1);}
}
ctx.fillStyle=(can_jump<0)?'#eeee00':'#aaa';ctx.fillRect(px,py,playersize, playersize);
if (py>height){
clearInterval(timer);
if (confirm('GameOver! Your Points:'+points+' Restart?')){window.location.reload()}
}
}, 1000/24);
document.addEventListener('mousemove', function (e) { to_x = e.pageX; }, false);
})(document.getElementById('game'), 800, 600, 10, 6, 0.005);
И версия с более ожесточенными правилами, нельзя вообще покидать экран.
jsfiddle.net/SiDChik/2JEEH/19/embedded/result/
jsfiddle.net/SiDChik/2JEEH/19/embedded/result/
У меня не всегда успевает переключиться в другое состояние, поэтому ниндзя иногда проскакиват платформы.
Ну в том то и философия :) Пока мы серые мы не можем удержаться в пределах экрана. То есть если игрок серого цвета он проваливается сквозь платформы.
Но тогда он не должен же отталкиваться вниз, пока летит вверх. :)
Не всегда наши трудности бывают очевидны, так или иначе всегда есть препятствия на пути вверх. По факту я пытался сделать игру сложной и динамичной, еслиб в зависимости от состояния можно было пролетать и вверх и вниз это бы не усложняло, а упрощало бы ситуация, разве что менять состояния по таймеру, но мне это показалось не логичным.
UFO just landed and posted this here
Sign up to leave a comment.
Гоночка на JavaScript (30 строк кода)