![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 72
|
народ, подскажите, пажалст кусочек кода в котором реализовано движение по инерции. Допустим, хватаешь мувик, тянешь его, а он после отпускания мышки продолжает движение в том же направлении. Надо реализовать в проге, а времени разбираться с векторами всякими нет.. Или подскажите где почитать можно
|
|
|||||
|
[+1 24.05.11]
[+1 09.08.11] Регистрация: Mar 2011
Сообщений: 101
|
Тут тянуть мувик нельзя. надо запускать EnterFrame слушатель, смотреть координаты мыши, линковать мувик к ним, рассчитывать приросты по осям и на Mouse_UP запускать таймер, который будет какое-то время эти приросты дальше передавать в мувик, постепенно уменьшая.
|
|
|||||
package { import flash.display.*; public class Main extends Sprite { public function Main():void { addChild(new Body()); } } } ///////////// import flash.display.*; import flash.events.*; class Body extends Sprite { public var vX:Number = 0; public var vY:Number = 0; private var pX:Number; private var pY:Number; private var damp:Number = 0.9; private var dragging:Boolean = false; public function Body() { graphics.beginFill(0x008000); graphics.drawCircle(0, 0, 40); addEventListener(Event.ADDED_TO_STAGE, addedToStage); buttonMode = true; } private function addedToStage(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp); addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event):void { if (dragging) { vX = stage.mouseX - pX; vY = stage.mouseY - pY; pX = stage.mouseX; pY = stage.mouseY; } else { vX *= damp; vY *= damp; } x += vX; y += vY; } private function mouseDown(e:MouseEvent):void { dragging = true; pX = stage.mouseX; pY = stage.mouseY; } private function mouseUp(e:MouseEvent):void { dragging = false; } } |
|
|||||
|
Извините, не могу понять как это работает, но работает на ура
Не могли разъяснить что есть vX, vY и pX, pY, чтобы понять логику) |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 72
|
Спасибо всем )
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 72
|
Цитата:
нашел тут еще один вариант реализации http://www.quasiuseful.com/?id=11 |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|