我想检查enemy_green_light(enemy_green_light_xenemy_green_light_y)和玩家(x,y)是否相互碰触。但是,这段代码并没有做我想做的事情,可以说即使他们没有这样做也会遇到。 (x,y)是左角坐标。 谢谢!
boolean before_x=(x<enemy_green_light_x)&&(x+player.getWidth()>enemy_green_light_x);
boolean after_x=(x>enemy_green_light_x)&&(enemy_green_light_x+enemy_green_light.getWidth()>x);
boolean before_y=(y<enemy_green_light_y)&&(y+player.getHeight()>enemy_green_light_y);
boolean after_y=(y>enemy_green_light_y)&&(enemy_green_light_y+enemy_green_light.getHeight()>y);
if(before_x||after_x)
if(before_y||after_y)
{
pressed=true;
}
编辑:我也试过这个代码,但它没有用。
float p_y_1,p_y_2,p_x_1,p_x_2,e_y_1,e_y_2,e_x_1,e_x_2;
p_y_1=y;
p_y_2=y+player.getHeight();
p_x_1=x;
p_x_2=x+player.getWidth();
e_y_1=enemy_green_light_y;
e_y_2=enemy_green_light_y+enemy_green_light.getHeight();
e_x_1=enemy_green_light_x;
e_x_2=enemy_green_light_x+enemy_green_light.getWidth();
if(!(p_y_2<e_y_1||p_y_1>e_y_2||p_x_2<e_x_1||p_x_1>e_x_2))
pressed=true;
答案 0 :(得分:1)