Håller på att göra en litet test spel åt broshan och då tänkte jag en 2d platformer. Men nu har jag problem med att få "gubben" att kollidera med mina "blocks".
Jag har redan en metod i min "player" node/klass/sak (vet inte vad man kallar klasser i javascript för) och som kollar OM man kolliderar. Funkar fint men nu vill jag kolla från vilket håll man kolliderar.
Alltså följande riktningar:
NORTH - player.y = block.tile.y
WEST - player.x = block.tile.x
SOUTH - player.y = block.tile.y + block.tile.height
EAST - player.x = block.tile.x + block.tile.width
och dessa för om man sätter sig i ett hörn(tänker jag rätt här? För man kolliderar ju isåfall med 2 olika block och gör därefter ändringarna???).
Så dessa KANSKE behövs, jag vet inte riktigt :/
NORTHEAST
NORTHWEST
SOUTHEAST
SOUTHWEST
Här är koden som endast kollar. Jag har en array där jag lägger varje blocks ID och tar bort det därefter om jag "av"-kolliderar(?)
HTML-kod:
collides: function(block) {
var collide = (Math.abs(this.x - block.tile.x) * 2 < (this.width + block.tile.width)) && (Math.abs(this.y - block.tile.y) * 2 < (this.height + block.tile.height));
if(collide) {
if(!inArray(block.id, this.colliding)) {
this.colliding.push(block.id);
}
} else {
if(inArray(block.id, this.colliding)) {
this.colliding = removeFromArray(block.id, this.colliding);
}
}
return false;
}
Jag behöver nu skapa en "handleCollision"-metod som körs om 'collide' är true och som kan kolla vart man kolliderar ifrån.
HTML-kod:
handleCollision: function(block) {
// Now what?
}
Detta behöver jag nu hjälp med. Google hjälper mig inte längre, får inga konkreta och förståliga svar därifrån