Permalänk
Medlem

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

});

Dold text

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)

Dold text

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

Permalänk
Medlem

Skrev ihop en fungerande jsfiddle som du kan kolla på:

https://jsfiddle.net/uzuzsoyy/

Försök även undvika svenska när du skriver kod

Visa signatur

[ i7-8700K @ 5Ghz || CM MasterLiquid ml360r || 64GB DDR4 3200Mhz || MSI Z370Pro Carbon || KFA2 RTX 3080TI || EVGA Supernova G2 750W || Samsung 960 EVO || Lian Li pc-o11 Dynamic ]

Permalänk
Medlem
Skrivet av Zentix:

Skrev ihop en fungerande jsfiddle som du kan kolla på:

https://jsfiddle.net/uzuzsoyy/

Försök även undvika svenska när du skriver kod

Här har du: https://jsfiddle.net/5a0toqy0/1/
Finns varken bilder eller annat inlagt. Boxarna är till för att spawna in på en fullstor skärm, det är därför dom ligger utanför spelytan.

Permalänk
Medlem

Oj vad dum jag känner mig... Kollat igenom koden 1000 gånger känns det som, men ändå missade jag att skriva 2 stycken #...