![]() |
Проблема с позиционированием мыши
Пишу игру, где нужно проводить курсор мышки по всяким замысловатым лабиринтом и на первых парах столкнулся с проблемой позиционирования курсора.
требуеться, чтобы курсор был в одной и той же позиции , что и мой нарисованный курсор (то бижь символ, который я перетаскиваю по стартДрагу) пытался так, но не получаеться : Код:
startDrag(clash);очень надеюсь на вашу помощь:bb: |
И не получится. Оставь в покое мышку!
|
_xmouse (Button._xmouse property)
public _xmouse : Number [read-only] |
Вобщем проблема в том что свойства _xmouse _ymouse изменять програмно нельзя.
|
BigDan, двумя постами выше об этом уже сказали.
|
так что нужно? переместить мышку в какуюто точку? можно заставить юзера нажать на кнопку в этом месте к примеру...
|
2 Neosano:
Я вижу только один способ заставить пользователя щёлкнуть в каком-то месте -нарисовать большую красную стрелку с надписью: "Щёлкни сюда". Свойства _xmouse и _ymouse только для чтения. Их никак поменять нельзя. Необходимо искать другие решения. |
Всем спасибо, немного огорчен, но все равно нашел альтернативу решению
Код:
if(_xmouse<32 && _ymouse<32) {Только вот назрел вопрос, как програмно определить пересечение двух объектов? У меня есть символ clash (это персонаж) и символ level1 (это уровень) и мне надо каким-то образом определять, когда они пересекаються друг с другом... если бы это была мышка, томожно было б и по RollOut , но как быть, если управление будет с клавы? |
hitTest
|
Не подходить
Код:
В идеале факт пересечения двух клипов нужно считать состоявшимся, если у них есть хотя бы поПоэтому получаться ложные данные |
я вот тут подумал, может есть способ сравнения по пересечению цветов, то есть у меня clash черного цвета, и бэкграунд черного, может можно как-нить заюзать момент их сопрекосновения?
|
Вариант номер 1: Построить "кишку" из небольших прямоугольных участков, тогда хиттест будет нормально работать.
Вариант номер 2: Если карта существует в виде массива координат - хиттестить не 2 клипа, а клип и координаты из массива. |
А вы не читали в справке, за что отвечает третий параметр в hitTest?
Хотя, это к делу не относится =( |
Цитата:
Но этот флаг точно дает возможность включать только действительно закрашенные точки? И как мне узнать мои первые два параметра, у меня ж clash - это не точка и не пиксел? |
Попробуй заюзать hitTest у BitmapData, т.е. снимая битмап с ролика и с целевого объекта, проверять полученные битмапы на хиттест. Я не пробовал, поэтому это только теория.
|
Zmitrek, оформлять код в теги нужно всегда, а не только по настроению.
|
iNils, прости...
Подскажите кто-нить ресурс по BitmapData на русском и доступно. К сожелению в моих источниках об этом ничего не написано, а хелп дает слишком скудную инфу. Есть вариант декомпилить и поковырять чей-нить чужой swf ,но это крайность, надеюсь решить проблему без декомпилера и плогиата |
Цитата:
|
Угу, самое прикольное ,что там про хитТест не написано, не подсвечено, не переведено =(
|
Сейчас переведу.
|
Сенкс, респект!
Отпишись по завершению! |
Перевел.
|
Спасиб, ток я все равно мало чего понял, пустая моя башка =(
Пойду застрелюсь. (или типа Гурского почитаю) |
Цитата:
хнык-хнык (( Всё что познано, было добыто потом и кровью, методом проб и ошибок ((( хнык-хнык Я стрелялся :) И по сей лень спотыкаюсь, из-за незнания некоторых основных вещей, которым в книжках учат. |
Цитата:
Код:
startDrag(clash, true);// c параметром true усе будет нормально; |
не, я уже передумал юзать мышу, поскольку _xmouse & _ymouse только ридбл, то мне уже не интерестно, я хочу навернуть геймплей, а то не очень получаеться с курсором.
Поэтому переношу гаму на клавиатурное управление. Вопрос про hitTest остаеться открытым. |
Может у мувика clash есть несколько граничных
четко выраженных точек (например, верхняя часть головы одна, ноги -- две других точки-) ) а далее использовать метод hitTest в варианте коллизия "содержимое мувика - точка" по каждой точке мувика clash. |
Цитата:
|
А я как-то купил какую-то небольшую книжку на раскладках, посмотрел, что там нет ничего интересного, дал кому-то почитать и забыл уже, кому. Это была первая и последняя книга по Флешу, которую я купил. ^_^ И хоть я не Бог Флеша, но всё же что-то да умею, что говорит в пользу самообучения. Кстати, без лишней лести, надо заметить, что с тех пор, как я пришёл на этот форум, мой уровень владения Флешем значительно повысился. ^_^
|
да, у меня есть 4 граничные точки у clash , как мне зарелизить hitTest
terbooter, прости, но я не очень понял релиз коллизии, буду примного благодарен, если напишешь пример для двух (типа любых), граничных верхних точек. Спасибо. |
Вложений: 1
Ну я это представляю примерно вот так...
x1 и y1 это координаты точки по которой проверяется столкновение с фоном. Начало координат клипа clash в левом верхнем углу Далее можно добавить сколько нужно точек |
Цитата:
Чел ,ты спас меня ! Огромное спасибо!Спасибо за аттач (*.fla) :drinks: |
Еще один вопросик, можно ли заставить clash двигаться по диагонали, когда зажаты две клавиши (вверх и влево например)?
примерно с этим хендлером: on(keyPress "<Left>") ...или подскажите альтернативный путь (биндить на отдельные клавиши эти действия не предлагать) |
так вроде двигается мувик по диагонали при одновременно нажатых
двух кнопках |
не-а, вот так пишу в clash и не получаеться
Код:
on(keyPress "<Left>") { |
Вложений: 1
2 Zmitrek:
Опрашивать клавиши на onEnterFrame. Например, вставьте этот код просто в пустой кадр новой флешки: Код:
var left:Number = Stage.width / 2; |
Ух ты! Здорово!
Огромное спасибо, Хемуль! Очень выручил, рад до бесподобства, продолжаю созидание геймы! РЕСПЕКТ! Форум и здешние обитатели - ПРОСТО СУПЕР! |
| Часовой пояс GMT +4, время: 01:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.