this code works fine. all it's doing is setting collision around enemy. and if player touches player from the right than player moves to the right. if player touches enemy from left than player moves to the left.
playerX = player x postion
playerY = player y postion
playerW = player width
playerH = player height
x = enemy x postion
y - enemy y postion
width - enemy width
height - enemy height
p.setX = set player x postion
...
if(playerX + playerW >= x && playerX <= x + width)
{
if(playerY+playerH >= y && playerY <= y+height)
{
if (playerX <= x) //player on left
{
System.out.println(playerX +"--"+x);
p.setX(x - width);
}
else if(playerX >= x)//player on right
{
p.setX(x + width);
}
}
}
this code below i understand how its working
if(playerX + playerW >= x && playerX <= x + width)
{
if(playerY+playerH >= y && playerY <= y+height)
{
but this code is like magic!
ok so if player x postion is on left of enemy x, than move player to right
if (playerX <= x) //player on left
p.setX(x - width);
but i dont get it. bc if want to to see if player is on left of enemy than i should take playerX+playerW so collsion point is on right of player head. for ex.
if (playerX+playerW <= x)
//thsi i understand but its not right why??
and next line shoud be enemy x - player width.
p.setX(x - playerW) //this i understand but its not right. why??
i was thinking if playerx+playerW will get me a point at right of player head. and
this will test if player right side of head is <= enemy x(which is left of enemy head)
if (playerX+playerW <= x) //this shoudl work.........