function na(e) {
bb = e.keyCode;
cc = document.getElementById('jeden').style;
cc2 = document.getElementById('dwa').style;
var i = 100 * Math.round(5 * (Math.random()));
var ii = 100 * Math.round(5 * (Math.random()));
var isMoving = false;
if (bb == 39) {
if (!isMoving) {
isMoving = true;
d1 = setInterval(function() {
ol();
}, 500);
}
} else {
clearInterval(d1);
}
if (bb == 40) {
if (!isMoving) {
isMoving = true;
d2 = setInterval(function() {
ol2();
}, 500);
}
} else {
clearInterval(d2);
}
if (bb == 37) {
if (!isMoving) {
isMoving = true;
d3 = setInterval(function() {
ol3();
}, 500);
}
} else {
clearInterval(d3);
}
if (bb == 38) {
if (!isMoving) {
isMoving = true;
d4 = setInterval(function() {
ol4();
}, 500);
}
} else {
clearInterval(d4);
}
function ol() {
cc.left = parseInt(cc.left) + 50 + "px";
if (parseInt(cc.left) > 500) {
cc.left = parseInt(cc.left) - 550 + "px";
}
if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
cc2.left = i + "px";
cc2.top = ii + "px";
}
}
function ol2() {
cc.top = parseInt(cc.top) + 50 + "px";
if (parseInt(cc.top) > 500) {
cc.top = parseInt(cc.top) - 550 + "px";
}
if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
cc2.left = i + "px";
cc2.top = ii + "px";
}
}
function ol3() {
cc.left = parseInt(cc.left) - 50 + "px";
if (parseInt(cc.left) < 0) {
cc.left = parseInt(cc.left) + 550 + "px";
}
if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
cc2.left = i + "px";
cc2.top = ii + "px";
}
}
function ol4() {
cc.top = parseInt(cc.top) - 50 + "px";
if (parseInt(cc.top) < 0) {
cc.top = parseInt(cc.top) + 550 + "px";
}
if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
cc2.left = i + "px";
cc2.top = ii + "px";
}
}
}
d = document.onkeydown = na;
<div id="tlo" style="position:absolute;width:550px;height:550px;background-color:green;left:0px;top:0px;" ></div> <div id="jeden" style="position:absolute;width:50px;height:50px;background-color:red;left:0px;top:0px;" ></div> <div id="dwa" style="position:absolute;width:50px;height:50px;background-color:blue;left:100px;top:0px;" ></div>
Dobrze Ci idzie. Wyglada jak wygląda. Coś tam poprawiłem, bo jakieś błedy były (średniki, nawias).
Troche dziwnie działa.
Jak daje np. w prawo to idzie w prawo i do góry, bo wczesniej szedł do góry.
Troche sie inaczej to robi. W grach zawsze jest loop (czyli petla która sie wykonuje np. 60x na sekunde). I to własnie w tej petli sterujemy graczem i innymi elementami. Klikając kursory ustawiamy przesuniecia X i Y, a potem w petli wykonujemy je. W petli tez należałoby zrobić zjadanie "obiektu" (ofiary). Jesli pozycja głowy weza jest taka sama jak ofiary, to ofiare usuwamy, tworzymy nowa, a weza wydłuzamy

. Weza najlepiej trzymac w tablicy

U ciebie sa 4 loopy. Sprobuj zrobić 1 loop (setInterval), a w tych 4 funkcjach tylko ustawiać przesuniecia X i Y.