所以这是我的问题,我不确定这里的交易是什么,但它应该是非常简单的。我有一个纹理,我想要在屏幕的左半部分或屏幕的右半部分绘制。当触摸屏幕的相应侧时
调用方法的方法:
public void screenTouched() {
if (Gdx.input.justTouched()) {
main_char.updateMainCharacter(Gdx.input.getX(), main_char.getPosition().y);
}
移动纹理的方法:
public void updateMainCharacter(float touch_pos_x, float pos_y) {
//main_char is already on left side
if (position.x < ClimberDude.V_WIDTH / 2 && touch_pos_x < ClimberDude.V_WIDTH / 2) {
position.x = 0;
position.y = pos_y + main_char.getHeight();
}
//main_char is already on right side
else if (position.x > ClimberDude.V_WIDTH / 2 && touch_pos_x > ClimberDude.V_WIDTH / 2) {
position.x = ClimberDude.V_WIDTH - main_char.getWidth();
position.y = pos_y + main_char.getHeight();
}
else if (touch_pos_x < ClimberDude.V_WIDTH / 2) {
position.x = 0;
position.y = pos_y;
}
else if (touch_pos_x > ClimberDude.V_WIDTH / 2) {
position.x = ClimberDude.V_WIDTH - main_char.getWidth();
position.y = pos_y;
}
}
答案 0 :(得分:1)
问题在于您选择的操作员和&amp;&amp;而不是&amp;。
好的,这是:
它移动是因为每个循环只处理其双重条件的一部分。因此,如果他删除&amp;&amp;从他的每一个他很快就会看到他的逻辑上有所改善。
见这里: Difference between & and && in Java?
这将为您解释一切。
:)