SkazOff Blog

Programming | MonsterHunter | Part#3

Я безнадежно просрочил пост с кодом, но есть уважительная причина — редизай блога, который я планировал уже в течении года. НЕ все еще готово, многие посты придется переписывать, но «процесс идет» как говорится.

А сегодня продолжаем МонстрХантера=)

Создадим класс Speed — скорость перемещения нашего охотника:

private float xv = 1; 
private float yv = 1; 

public Speed() {
this.xv = 1;
this.yv = 1;
}

public Speed(float xv, float yv) {
this.xv = xv;
this.yv = yv;
}

public float getXv() {
return xv;
}
public void setXv(float xv) {
this.xv = xv;
}
public float getYv() {
return yv;
}
public void setYv(float yv) {
this.yv = yv;
}

public void toggleXDirection() {
xv = -xv;
}

public void toggleYDirection() {
yv=-yv;
}

Добавим апдейт в MHThread:

this.gamePanel.update();

Сам же апдейт выглядит вот так:

    public void update() {
        if(hero.getX()+ hero.getBitmap().getWidth()/2>= getWidth()){
            hero.getSpeed().toggleXDirection();
        }

        if( hero.getX()- hero.getBitmap().getWidth()/2<=0){
            hero.getSpeed().toggleXDirection();
        }

        if(hero.getY()+ hero.getBitmap().getHeight()/2>= getHeight()){
            hero.getSpeed().toggleYDirection();
        }

        if(hero.getY()- hero.getBitmap().getHeight()/2<=0){
            hero.getSpeed().toggleYDirection();
        }

        hero.update();
    }

Теперь проверяем, при запуске герой двигается сам, соблюдая границы экрана (нужно потестить на разных устройствах — планшеты/телефоны). Теперь сделайте движение касанием — можно по аналогии с прошлыми постами.

Оставить комментарий