Hjälp med ett spel i Jqery!
Hej!
Håller på att bygga ett spel som skolarbete. Spelet är mycket simpelt, man ska vara en box, och sen ska man på tid åka runt på spelplanen och försöka hämta in alla 5 boxar så vinner man. Har dock fått lite problem...
Har försökt att göra så att spelaren endast ska kunna röra sig på spelplanen, men det går inte så bra. Koden kommer nedanför. Just nu har jag endast problem med att få den att både röra sig och stanna åt höger. Koden är under.
$(document).keydown(function(e){
// Ner
if (e.keyCode ==40) {
var spel1Top = $("#spelare1").position().top + $("#spelare1").height() ;
var max = $("#spelplan").height() + $("#spelplan").position().top ;
//console.log("max: " + max+ ", vår:" + spel1Top);
if(spel1Top < max){
$("#spelare1").animate({top: '+=5px'}, 1);
}
}
// Upp
else if (e.keyCode ==38){
var spel1Top = $("#spelare1").position().top;
//console.log("vår:" + spel1Top);
if(spel1Top > 0){
$("#spelare1").animate({top: '-=5px'}, 1);
}
}
// Höger
else if (e.keyCode ==39){
$("#spelare1").animate({left: '+=5px'}, 1);
var spel1Left = $("#spelare1").position().left + $("spelare1").width();
var max = $("spelplan").position().left; + $("spelplan").width();
//console.log(spel1Left + ", " + max);
//if(spel1Left < max){
//$("#spelare1").animate({left: '+=5px'}, 1);
//}
}
// Vänster
else if (e.keyCode ==37){
var spel1Left = $("#spelare1").position().left;
if(spel1Left > 0){
$("#spelare1").animate({left: '-=5px'}, 1);
}
}
});
$(document).keyup(function(e){
if (e.keyCode ==40)
$("#spelare1").clearQueue();
else if (e.keyCode ==38)
$("#spelare1").clearQueue();
else if (e.keyCode ==39)
$("#spelare2").clearQueue();
else if (e.keyCode ==37)
$("#spelare2").clearQueue();
});
Får också ett error när jag försöker gå åt höger.
Uncaught TypeError: Cannot read property 'left' of undefined
at HTMLDocument.<anonymous> (Script.js:26)
at HTMLDocument.dispatch (jquery.min.js:3)
at HTMLDocument.q.handle (jquery.min.js:3)
verkar som left inte är definierat, men ser inte vad det skulle vara för annorlunda mot när den rör sig höger, då är left definierat.
Tacksam för svar