25.05.2014 / 17:40 | |
ilyaX2D Пользователь Сейчас: Offline
Регистрация: 07.03.2014
| andreyKorotayev, Ну, в общем пробуй) Следи за озу на всякий случай |
26.05.2014 / 16:48 | |
andreyKorotayev Пользователь Сейчас: Offline
Имя: Андрей Откуда: Запорожье Регистрация: 19.05.2014
| Суть вопроса излагаю в картинке, думаю все поймут
Изменено andreyKorotayev (26.05 / 16:48) (всего 1 раз)
Прикрепленные файлы: Sketch261164444.png (48.99 кб.) Скачано 141 раз |
26.05.2014 / 17:25 | |
samogost Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| andreyKorotayev, алгоритм прост: if (мяч.getX()>бот.getX() && мяч.getX()<бот.getX()+бот.getWidth()) {действия при нахождении мяча напротив бота}
|
26.05.2014 / 18:29 | |
andreyKorotayev Пользователь Сейчас: Offline
Имя: Андрей Откуда: Запорожье Регистрация: 19.05.2014
| Ты меня не понял, я имел ввиду как определить столкновение по диагонали еще до столкновения мяча с доской бота, чтобы бот стоял на месте когда видит что мяч летящий по диагонали литит прям в него
|
26.05.2014 / 19:46 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| andreyKorotayev, у тебя есть координаты шарика x, y, направление движения до касания стенки (либо вектор, либо угол) phi, ты знаешь, насколько изменится угол при касании стенки (допустим Math.PI / 2 - phi), так почему ты не можешь высчитать позицию шарика через несколько шагов?
__________________
let live |
26.05.2014 / 21:36 | |
andreyKorotayev Пользователь Сейчас: Offline
Имя: Андрей Откуда: Запорожье Регистрация: 19.05.2014
| Я формулы физики,и геометрии не очень знаю.подскажите пожалуйста формулу или уровнение ,ну или хотябы ссылку на статью где они описываються
|
26.05.2014 / 22:51 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| andreyKorotayev, ёлочки зеленые. Гуглить не умеешь, математику (элементарную) не знаешь. Какие игры ты там собрался делать? оО
Изменено Ксакеп (26.05 / 22:52) (всего 2 раза) |
27.05.2014 / 05:45 | |
samogost Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| andreyKorotayev,все очень просто. Алгоритм проверки нахождения мяча напротив доски я тебе дал: if (мяч.getX()>бот.getX() && мяч.getX()<бот.getX()+бот.getWidth()) {действия при нахождении мяча напротив бота} Осталось узнать будет ли выполняться это условие через кол-во шагов, равных расстоянию от шарика до доски по оси Игрек. Допустим шарик движется по диагонали под углом 45градусов, пусть S-расстояние от мяча до бота-доски по оси игрек, нам надо узнать выполнение условия через S шагов, для чего создадим метод под названием boolean isPositionOppositeDiagonal(Point p1,Point p2), который будет проверять находятся точки напротив по диагонали. Опишем алгоритм метода на простом языке: 1)Переместить точку p1 в цикле до точки p2 в цикле. 2)Проверить условие if (мяч.getX()>бот.getX() && мяч.getX()<бот.getX()+бот.getWidth()),если оно выполняется, то возвратить true, иначе возвратить false. Алгоритм дал, тебе осталось реализовать его в коде.
Изменено samogost (27.05 / 05:45) (всего 1 раз) |
27.05.2014 / 08:06 | |
samogost Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Поправка: в начале условия вместо мяч.getX() надо мяч.getX()+мяч.getWidth()
Изменено samogost (27.05 / 08:07) (всего 3 раза) |
27.05.2014 / 08:29 | |
andreyKorotayev Пользователь Сейчас: Offline
Имя: Андрей Откуда: Запорожье Регистрация: 19.05.2014
| Я хотел так вначале сделать,но думал что не лучший варик каждый раз по циклу прогонять и забил на этот способ.Ну чтож буду его использовать
|