Форум 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=144354)

LOST DEMON 09.09.2010 23:45

Реально ли регулировать скорость движения курсора?
 
Реально ли средствами AS регулировать скорость движения курсора (системного всмысле) - если нет(а наверно, так и есть:( ), то хотя бы может,как-то можно регулировать скорость движения своего, кастомного курсора(системный скрыт)?

Зачем мне это надо: это игра, есть прицел-клип-типа кастомный курсор(от оружия) нужно, чтобы не так быстро перемещался он по экрану(а помедленнее, а плюс привязать эту скорость к "прокаченности" игрока) Ясно, что чем медленнее курсор, тем сложнее=)

Вообщем, надеюсь, объясните, какие есть методы, сделать курсор "непослушным")))

PS: может важно, пользуюсь для определения попадания выстрела hitTest (); Заранее спасибо за ответ!! :)

in4core 09.09.2010 23:51

есть один вариант. Когда ты приклеваешь mouse.hide() добавляя свой курсор, ставишь функцию на роприсовку координат мышки от своего курсора _xmouse _ymouse. Так вот можно сделать так, чтобы по опред алгоритму курсор смешался на координату минус, напнример будет не x = 120 а x = 120 - var , тоесть курсор будет тормазится ))

LOST DEMON 09.09.2010 23:55

in4core, да точно, спасибо - так просто - не догадался сам))

Stargazer 09.09.2010 23:59

Что будете делать, когда курсор выйдет за границу окна (оконный режим) или упрётся в край экрана (полноэкранный режим)?

VVall 10.09.2010 00:32

Постоянно перемещайте игровой (видимый) курсор в координаты реального (невидимого) с заданной скоростью.

mooncar 10.09.2010 01:59

Вложений: 1
Автор, была похожая тема, делал пример как-то (то, о чем VVall говорит).
Вот, немного видоизменено.
Скорость для правдоподобия динамически меняется.

LOST DEMON 10.09.2010 21:05

VVall, дак это я понимаю - вопрос-то в том и есть, что как эту скорость задать, вот Stargazer правильно отметил, что не все так просто=( По совету in4core действительно проблема с краями получается=(
//
mooncar, спасибо огоромное за исходник!!=) Поиск подобной темы на форуме ничего не дал - поэтому и спросил=(
Код просто воистину классный и интересный, честно говоря
Код AS1/AS2:

Elastic.easeOut

вообще первый раз в жизни слышу такое - аж интересно стало - пойду смотреть Мука =))
Все работает очень хорошо, курсор реально тормознутый получился)
Кстати, а вот в коде есть:
Код AS1/AS2:

hunter_mc.onEnterFrame = function  () {
//тело функции
}

а я помню, что вроде как бы лучше чтоб от fps не зависело, а то вдруг подлагивать будет - курсор будет дрыгать О_о , а вот
Код AS1/AS2:

updateAfterEvent ();

можно тут использовать, посоветуйте как лучше??=)

samana 11.09.2010 03:04

Код AS1/AS2:

updateAfterEvent ();

используется кажется только с
Код:

MouseMove
и с
Код:

setInterval()

LOST DEMON 11.09.2010 08:22

samana, спасибо, все ясно, понял. Значит тут не получится использовать.

samana 11.09.2010 14:27

Тут тоже можно использовать setInterval, смотри
Код AS1/AS2:

var timeToMove:Number =30
function moveCursor(){
        hunter_mc._x+=(_xmouse-hunter_mc._x)/timeToMove;
        hunter_mc._y+=(_ymouse-hunter_mc._y)/timeToMove;
        updateAfterEvent();
}
var anim=setInterval(moveCursor,10) //10 - миллисекунд


LOST DEMON 11.09.2010 19:46

samana, все работает, отлично. Даже не знаю, что теперь и выбрать из двух способов, Ваш иль "экзотичный" способ mooncar=) В вашем единственное. че мне показалось, есть небольшое дрыганье курсора(понятно, что это можно легко устранить уменьшая число миллисекунд), а в способе mooncarа маленький "шлейф" от курсора остается, зато не дрыгает даже при низкой частоте вызова функции, своеобразный моушенблур получается))) Короче, мне оба способа понравились и мне захотелось их совместить - вот что вышло - тоже все работает:
Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
var timeToMove:Number = 2;
Mouse.hide();
 
hunter_mc.onEnterFrame = function() {
        hunter_mc.hunterMovieX = new Tween(hunter_mc, '_x', Elastic.easeOut, hunter_mc._x, _xmouse, timeToMove, true);
        hunter_mc.hunterMovieY = new Tween(hunter_mc, '_y', Elastic.easeOut, hunter_mc._y, _ymouse, timeToMove, true);
        updateAfterEvent();
};
 
var anim = setInterval(moveCursor, 10);



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

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