将A点和B点视为墙壁,将O点视为墙内的玩家。
所以他们看起来像A O B。
我希望玩家在接触到右点B时向左移动。当他触及左点A时向前移动。
正在渲染屏幕,玩家位置要么向右增加5,要么向左增加-5。
我试图做的事情: 我把它放在if else if语句中。如果A和O之间的距离为零,则玩家位置增加+5。如果O和B之间的距离为零,则玩家位置增加-5。但是一旦他接触到一堵墙(比如右墙),他就会向后移动-5,然后移动到5,再移动到-5,然后移动到5。
我理解为什么会这样,但我没有任何逻辑来实现这一点。
CODE: 对不起,我无法发布实际代码。我在移动互联网上。我没有电脑上网。
假设左侧是50,0,右侧是550,0,右侧是50,0。
//这一切都在呈现。
If (rightWall - PlayerPos <=0){
PosIncrement = -5;
}
If (leftWall - PlayerPos <=0){
PosIncrement = 5;
}
translateX (PlayerPos);
答案 0 :(得分:2)
如果玩家在墙之间,则意味着左墙应始终具有低于玩家位置的位置。玩家位置shuld等于或大于50且等于或小于550
所以正确的逻辑可以是
If (rightWall - PlayerPos <=0){
PosIncrement = -5;
}
If (PlayerPos - leftWall <=0){
PosIncrement = 5;
}