Лучший способ сделать это, вероятно, то, что вам, возможно, придется выяснить самостоятельно.
Как и в любом приложении, начните с простого, разбейте свою проблему на куски, попробуйте выявить проблемные проблемы, а затем внедрите первую структуру, достаточно гибкую, чтобы ее можно было улучшить.
Я непонять каждый аспект вашей игры ...
"cause you cannot release it in the middle" //middle of what, of the cross?
"I want it always to go move to the center." // how's that possible?
"It should only move horizontal or vertical, and 1 block position only"
"It should kinda behave like an iPhone switch button, but in a cross"
Лично я нахожу все эти строки запутанными.Как это может быть в кресте, если он движется только на один блок?
Если оставить в стороне эти проблемы, можно начать с создания класса Block.
Что для этого нужно сделать?
- Move Up
- Move Down
- Move Left
- Move Right
здесь у вас есть возможность реализовать один метод или метод для каждого движения.Ваш выбор:)
Если вы знаете, куда уходит Блок, то легко сделать его быстрым.При использовании метода твининга вам просто нужны точка назначения, функция задержки и функция замедления, чтобы сделать его плавным.
Направления тоже не слишком сложны, при перемещении мыши вы можете легко вычислить направление, когда выесть направление, у вас есть пункт назначения.Если у вас есть пункт назначения, у вас есть метод.
Итак, чтобы подвести итог, некоторые свойства и методы вашего класса Block могут иметь ...
private var left:int = 0;
private var right:int = 1;
private var top:int = 2;
private var down:int = 3;
private var tweenDelay:Number = .5;
// event listeners
private function mouseDownListener(event:MouseEvent):void{};
private function mouseUpListener(event:MouseEvent):void{};
private function mouseMoveListener(event:MouseEvent):void{};
//get a couple of coordinates, feed them to the method &
//return an int (or a String )
private function getDirection(params:Object):int;
private function tweenBlock( direction:String ):void{}
Добавьте несколько логических значений вчтобы ограничить движения вашего блока, или использовать прямоугольник, чтобы не выходить за пределы.Вуаля!:)
Возможно, я забыл или пропустил некоторые вещи, но это должно помочь вам начать.
С другой стороны, если вы уже знаете все вышеперечисленное и застряли, пожалуйста, сообщите намточно в чем проблема, и может быть возможно быть более полезным.