Я не знаю, что не так с этим кодом. Спрайт должен двигаться влево, когда он достигает правого конечного угла. но этот код делает, когда он (спрайт) достигает правого конечного угла, спрайт просто останавливается.
StartM - левый конечный угол, а endM - правый конечный угол
//in constructor
position = new Vector2(ShootingTreys.WIDTH*0.48f, ShootingTreys.HEIGHT*0.025f);
// in update
delta = Gdx.graphics.getDeltaTime();
if(ps.touch == false){
if(leftEnd == false && (startM <= ballMeter.getX()) ){
position.x = ballMeter.getX();
position.x += 20 *delta;
if(endM == ballMeter.getX()){
leftEnd =true;
}
}
else {
position.x = ballMeter.getX();
position.x -= 20 *delta;
if(startM == ballMeter.getX()){
leftEnd = false;
}
}
ballMeter.setPosition(position.x , ballMeter.getY() );
0
Paul Natividad
28 Фев 2017 в 18:41
2 ответа
Лучший ответ
Сделайте небольшие изменения в вашем коде.
if(endM == ballMeter.getX()){
leftEnd =true;
}
Перевести в
if(endM <= ballMeter.getX()){
leftEnd =true;
}
А также
if(startM == ballMeter.getX()){
leftEnd = false;
}
К
if(startM >= ballMeter.getX()){
leftEnd = false;
}
1
Aryan
28 Фев 2017 в 18:01
Спасибо @AbhishekAryan
if(leftEnd == false || (startM <= ballMeter.getX()) ) {
position.x = ballMeter.getX();
position.x += 20 * delta;
if(endM <= ballMeter.getX()){
leftEnd =true;
}
}
if(leftEnd) {
position.x = ballMeter.getX();
position.x -= 20 * delta;
if(startM >= ballMeter.getX()){
leftEnd = false;
}
}
ballMeter.setPosition(position.x , ballMeter.getY() );
0
Paul Natividad
1 Мар 2017 в 02:17
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.