自反if语句逻辑

时间:2018-09-05 15:04:17

标签: if-statement math logic game-physics collision

我在游戏中遇到一些碰撞问题,但是我不想再看一次即将完成的游戏的每次物理碰撞,它实际上是可玩的,问题是,有一种推动力角色穿过墙的一点,然后,如果受到足够的打击,将无法移动,我考虑过做

if (position + this power).intersects(wall)
     Don't apply power;

但是我认为我在那儿做错了什么,无法纠正它,然后,我尝试了不同的方法:

if(char.intersects(wall)) //It will do only if the character is inside the wall
{
   if(char.y < wall.y) //If the character is below the wall's top
       char.y++; //It will go up 
   else if(char.y > wall.y - wall.height)//If the character is above the bottom of the wall
       char.y--; // it will go down
}

如您所见,问题是:它们是自反的,如果其中一个是对的,那么另一个也总是对的,我不认为我需要做些什么来解决这个问题

如果它在墙顶下方,则肯定在墙底上方

如果它在墙底之上,那肯定是在墙底之下

然后,这将产生一个问题,它将始终执行这两个函数,并尝试通过else来解决问题,但是问题是当用++偏移字符并且-不够时,然后角色会卡在墙上,有人可以告诉我我的逻辑失败吗?

0 个答案:

没有答案