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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2009, 17:41   #41
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
тоесть bullet.getX? Так вроде пробовал, ошибка или типа fireBullet.getX?
Не совсем, Bullet это класс. Объект-снаряд класса Bullet возвращается вышеуказанными функциями, и тебе как-то нужно получить к нему доступ, радаром или еще как-то, не знаю. (Или может быть это только своего снаряда инфу можно читать? Все же наверное любых.) Так вот когда будет известен объект, тогда вызвать его методы, они возвращают координаты, силу снаряда, танк-цель снаряда, скорость, направление и др.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 23.01.2009, 18:03   #42
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

хм, не могу врубиться, если судить по другим функциям, то логично было бы найти координаты снаряда таким образом e.getBullet.getX() перепробовал десятки комбинаций, метод тыка не помогает, судя по всему тут смысл в самом языке яве, его я знаю крайне плохо, надо консультироваться в онлайне, зайду в irc пожалуй.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 23.01.2009, 19:11   #43
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

есть opensource боты, смотри как сделано там
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 23.01.2009, 19:15   #44
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

ок, а что желания поиграть нету? Я надеялся на соревнования среди форумчан, уже заразил всех одногруппников.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 24.01.2009, 13:24   #45
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

методом тыка разобрался как получить координаты снаряда
Код:
public void onHitByBullet(HitByBulletEvent hbbe) {
		hbbe.getBullet().getX();
	}
работает только в этом методе, но это тупо, код в данном методе выполняется только если в вас попал снаряд. Следовательно этот код
Код:
public void onHitByBullet(HitByBulletEvent hbbe) {
         if (Math.abs(hbbe.getBullet().getX() - getX())<5 &&               Math.abs(hbbe.getBullet().getY() - getY())<5) { turnLeft(90); ahead(50);}
	}
будет бесполезен, т.к. когда пуля попадает вторая обычно еще не вылетела, а если и вылетела, тогда еще не находится в указанном диапазоне, от диапазона выше танк будет вечно шарахаться от снарядов и его легко убьют, пытался вытащить содержимое hbbe.getBullet().getX(); после описания класса создал паблик переменную типа HitByBulletEvent phbbe все компилирует без ошибок, но phbbe ничего не содержит... Как выкрутиться? Нужно в метод run поставить условие
Код:
         if (Math.abs(hbbe.getBullet().getX() - getX())<5 &&               Math.abs(hbbe.getBullet().getY() - getY())<5) { turnLeft(90); ahead(50);}
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 24.01.2009, 14:24   #46
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Я думаю после конкурса (2 февраля) когда покажу язык свой, начну делать такую игрульку. Тоесть оболочку, мир. А игроки-програмисты должны написать ДЛЛ (как в FERZе Грузина) бота.
Роман Радер вне форума Ответить с цитированием
Старый 24.01.2009, 14:41   #47
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

не забудь командный режим захват флага, это единственное чего не хватает в робокоде =)
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 24.01.2009, 15:02   #48
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
Сообщение от [Smarik] Посмотреть сообщение
не забудь командный режим захват флага, это единственное чего не хватает в робокоде =)
а вообще прикольно, человек ничего не делает только создал бота, а они сами играются между собой)))
Роман Радер вне форума Ответить с цитированием
Старый 24.01.2009, 20:11   #49
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
работает только в этом методе, но это тупо, код в данном методе выполняется только если в вас попал снаряд
потому что это событие попадания снаряда

В хэлпе пишется, что объект снаряд возвращается методом стрельбы, т.е. ты стрельнул - получи объект снаряд, т.е. не просто вызывай метод, а бери возвращаемое им значение, это и будет твой снаряд. А вот с чужими снарядами неизвестно как поступать. Объект генерируется функцией стрельбы другого танка, только вот как твоему танку его получить. Функция радара не возвращает случайно снаряды помимо вражеских танков?
Может там есть событие стрельбы другого танка? Правда я вроде такого не видел.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.01.2009, 20:53   #50
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Я впринципе разобрался, на самом деле все логично
Код:

public class Destroyer extends AdvancedRobot {
	public int bullx = 0;	
	
	public void onHitByBullet(HitByBulletEvent hbbe) {
	bullx = hbbe.getBullet().getX();
	}
}
Вот так вот юзаем в любом методе, просто я плохо знаю яву, тут весь смысл в самом языке, но чем больше понимаю яву, тем меньше понимаю как можно улучшить моего бота, парадокс.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игры для программистов! Rembo Свободное общение 17 29.12.2007 09:22
Знаете ли вы? Дворак для программистов mutabor Свободное общение 0 25.06.2007 15:48
ДЛЯ ПРОГРАММИСТОВ!!! VOLODIA Свободное общение 0 09.04.2007 23:01