Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2016, 08:02   #1
andrey5505
Новичок
Джуниор
 
Регистрация: 23.12.2016
Сообщений: 2
По умолчанию Движение мышью в игре XONIX (java)

Движение работает только вверх-вниз, до условия вправо- влево даже не доходит. Нужно доработать код ПОМОГИТЕ ПОЖАЛУЙСТА

Код:
addMouseMotionListener(new MouseMotionListener() {

@Override
public void mouseDragged(MouseEvent e) {

}
@Override
public void mouseMoved(MouseEvent e) {
int x;
int y;
x = e.getX(); // Получение координаты клика
y = e.getY();

if (x > Xbag) {
xonix.setDirection(RIGHT);
} else if (x < Xbag) {
xonix.setDirection(LEFT);
} if (y > Ybag) {
xonix.setDirection(DOWN);
} else if (y < Ybag) {
xonix.setDirection(UP);
}
}
});
addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {

}
@Override
public void mousePressed(MouseEvent e) {
int x;
int y;
x = e.getX();
y = e.getY();
Xbag = x;
Ybag = y;
}
@Override
public void mouseReleased(MouseEvent e) {

}
@Override
public void mouseEntered(MouseEvent e) {

}
@Override
public void mouseExited(MouseEvent e) {

}
});
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 23.12.2016 в 10:35.
andrey5505 вне форума Ответить с цитированием
Старый 23.12.2016, 20:09   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:

if (x > Xbag) {
xonix.setDirection(RIGHT);
} else if (x < Xbag) {
xonix.setDirection(LEFT);
} if (y > Ybag) {
xonix.setDirection(DOWN);
} else if (y < Ybag) {
xonix.setDirection(UP);
}
}
тут должно быть либо возможным задать ДВА направления, либо выбирать одно направление, например, так:
Код:
int dx = x - xbag;
int dy = y - ybag;
if(Math.abs(dx) > Math.abs(dy)){ // какое преобладает направление
  // обработка гор. перемещения 
} else {
  // обработка верт. перемещения   
}
GreenWizard вне форума Ответить с цитированием
Старый 25.12.2016, 19:36   #3
andrey5505
Новичок
Джуниор
 
Регистрация: 23.12.2016
Сообщений: 2
По умолчанию

Работает, но только 3 направления, почему то вправо не работает, подскажите пожалуйста!



if(Math.abs(dx) > Math.abs(dy)){ // какое преобладает направление
if (x > Xbag) {
xonix.setDirection(RIGHT);
} else if (x > Xbag);
{
xonix.setDirection(LEFT);
}
} else {
if (y > Ybag) {
xonix.setDirection(DOWN);
} else if (y < Ybag) {
xonix.setDirection(UP);
}
}
}
});
andrey5505 вне форума Ответить с цитированием
Старый 26.12.2016, 15:37   #4
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
if(Math.abs(dx) > Math.abs(dy)){ // какое преобладает направление
	if (x > Xbag) {
		xonix.setDirection(RIGHT);
	}  else {
		xonix.setDirection(LEFT);
	}
} else  {
	if (y > Ybag) {
		xonix.setDirection(DOWN);
	}  else {
		xonix.setDirection(UP);
	}
}

Последний раз редактировалось GreenWizard; 26.12.2016 в 15:42.
GreenWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение фмигуры (Java(Eclipse)) spinogryz_ua Общие вопросы по Java, Java SE, Kotlin 5 17.03.2013 20:22
требуеться помощ по игре на плотформе Java maxuiiie4ka Общие вопросы по Java, Java SE, Kotlin 0 02.01.2013 20:35
Движение объекта по полю в мультиплеерной игре Linel Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 23.12.2012 17:06
Движение объекта на форме мышью _-Re@l-_ Общие вопросы Delphi 12 24.07.2010 02:12
Движение в игре Serg-Grin Gamedev - cоздание игр: Unity, OpenGL, DirectX 16 17.07.2010 14:10