Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с позиционированием мыши (http://www.flasher.ru/forum/showthread.php?t=87137)

Zmitrek 30.10.2006 03:01

Проблема с позиционированием мыши
 
Пишу игру, где нужно проводить курсор мышки по всяким замысловатым лабиринтом и на первых парах столкнулся с проблемой позиционирования курсора.

требуеться, чтобы курсор был в одной и той же позиции , что и мой нарисованный курсор (то бижь символ, который я перетаскиваю по стартДрагу)

пытался так, но не получаеться :
Код:

startDrag(clash);
Mouse.hide();

onEnterFrame = function():Void {
        _xmouse=clash._x;
        _ymouse=clash._y;
}

где clash и есть тот самый символ

очень надеюсь на вашу помощь:bb:

Kikasso 30.10.2006 03:08

И не получится. Оставь в покое мышку!

terbooter 30.10.2006 08:56

_xmouse (Button._xmouse property)
public _xmouse : Number [read-only]

BigDan 30.10.2006 11:25

Вобщем проблема в том что свойства _xmouse _ymouse изменять програмно нельзя.

etc 30.10.2006 13:33

BigDan, двумя постами выше об этом уже сказали.

Neosano 30.10.2006 17:23

так что нужно? переместить мышку в какуюто точку? можно заставить юзера нажать на кнопку в этом месте к примеру...

Хемуль 30.10.2006 17:40

2 Neosano:
Я вижу только один способ заставить пользователя щёлкнуть в каком-то месте -нарисовать большую красную стрелку с надписью: "Щёлкни сюда". Свойства _xmouse и _ymouse только для чтения. Их никак поменять нельзя. Необходимо искать другие решения.

Zmitrek 30.10.2006 21:33

Всем спасибо, немного огорчен, но все равно нашел альтернативу решению

Код:

if(_xmouse<32 && _ymouse<32) {
        Mouse.hide();
        clash._x=_xmouse;
        clash._y=_ymouse;
        startDrag(clash);
}

Но до сих пор думаю о том ,чтобы управление перенести на клаву...

Только вот назрел вопрос, как програмно определить пересечение двух объектов?

У меня есть символ clash (это персонаж) и символ level1 (это уровень)
и мне надо каким-то образом определять, когда они пересекаються друг с другом...

если бы это была мышка, томожно было б и по RollOut , но как быть, если управление будет с клавы?

etc 30.10.2006 21:49

hitTest

Zmitrek 30.10.2006 22:57

Не подходить

Код:

В идеале факт пересечения двух клипов нужно считать состоявшимся, если у них есть хотя бы по
одной заполненной точке, которые имеют одинаковые глобальные координаты. Увы, но проверить
коллизию с такой точностью можно далеко не всегда. Для этого пришлось бы последовательно
перебрать значительное число точек, что недопустимо с позиции времени выполнения кода. По-
этому метод hitTest() сравнивает не положения заполненных точек двух клипов, а лишь их гра-
ничные координаты (получить которые можно, используя метод getBounds()). Это означает, что
факт коллизии будет подтвержден не тогда, когда объекты внутренней структуры двух клипов
действительно перекрывают друг друга, а тогда, когда пересекаются области, ограниченные опи-
санными вокруг них прямоугольными рамками.

А уровень у меня далеко не прямоугольник, скорее что-то напоминающее тонкую кишку =)
Поэтому получаться ложные данные


Часовой пояс GMT +4, время: 00:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.