PDA

Просмотр полной версии : Объекты в плиточном мире


Терпеливый
02.04.2013, 11:31
b.onRelease = function(){//событие кнопки
var name = "n" + t;//имя объекта
var clip = _root.attachMovie("n", name, 10+t);//переменная
game.xmouse = Math.round((_root._xmouse-game.tileW/2)/game.tileW);//координаты мыши по Х
game.ymouse = Math.round((_root._ymouse-game.tileH/2)/game.tileH);//координаты мыши по У
startDrag(clip, true);//привязка к мыши
t++;//счётчик
}
_root.onMouseDown = function(){//событие мыши
_root.clip._x = game.xmouse*game.tileW;//координаты клипа
_root.clip._y = game.ymouse*game.tileH;
trace(_root.clip._x)
trace(game.ymouse)
stopDrag();//прорисовка клипа на плитке
}

почему объект не попадает в плитку?_root.clip._y выводит "undefined", что не так сделано?game.xmouse правильно
подскажите, подалуйста

Hauts
02.04.2013, 12:23
Ctrl + Shift + F — автоформатирование кода. Пользуйтесь.

startDrag лучше не использовать, по моему мнению. Поведение этого метода легко можно повторить, на мой взгляд, лучше и правильнее.

По коду непонятно, в чем ошибка. Вы показываете кусок общего кода, при этом общий код у вас "заточен" под конкретную задачу, о которой никто, кроме вас, не знает.

Какой еще плиточный мир? Что должно происходить? Какой объект не попадает в плитку? Что за плитка?

На один ваш вопрос (объяснение которого, вероятно, связано с банальной ошибкой / опечаткой) у меня, например, возникает с десяток своих вопросов к вам.

Понимаете к чему я? Вам мало кто поможет, если вы не опишите вашу проблему детальнее, без надежды на то, что эту тему прочитает флэшер-экстрасенс.

Терпеливый
02.04.2013, 12:47
startDrag лучше не использовать, по моему мнению.
чем можно заменить?

Понимаете к чему я? Вам мало кто поможет, если вы не опишите вашу проблему детальнее, без надежды на то, что эту тему прочитает флэшер-экстрасенс.

архив выложил
мир строится из плиток, а объект не идет по плиткам, например, перемещение по сцене за мышью, а надо что бы если курсор мыши выходит из n-ой плитки, то объект сразу перемещался на следующую, как бы перепрыгивал

Hauts
02.04.2013, 12:49
По первому вопросу:

function mouseMoveHandler(){
this._x = this._parent._xmouse - this._startDragX;
this._y = this._parent._ymouse - this._startDragY;
updateAfterEvent();
}
function mouseUpHandler(){
delete this.onMouseUp;
delete this.onMouseMove;
}
myClip.onPress = function(){
this._startDragX = this._xmouse;
this._startDragY = this._ymouse;
this.onMouseMove = mouseMoveHandler;
this.onMouseUp = mouseUpHandler;
}


По второму — посмотрю чуть позже.

Терпеливый
02.04.2013, 22:18
может ктото обьяснить где у меня в коде(архиве) ошибка или как сделать правильно?

Терпеливый
03.04.2013, 08:55
dark256 если нету ничего сказать, то лучше помолчать

Hauts
03.04.2013, 11:19
Терпеливый, посмотрел исходник. Я даже не знаю, как вам и помочь-то. Я бы вообще почти все переделал, вот в чем дело.

Терпеливый
03.04.2013, 15:17
все неправильно?как переделать?есть ли какой-то пример посмотреть, книга какая-нибудь по этой теме?как это осуществить?

Hauts
03.04.2013, 15:25
Терпеливый, вы толком ничего не объяснили, что хотите сделать.

мир строится из плиток, а объект не идет по плиткам, например, перемещение по сцене за мышью, а надо что бы если курсор мыши выходит из n-ой плитки, то объект сразу перемещался на следующую, как бы перепрыгивал

Как вам могут помочь, если вы настолько криво (уж извините) свои мысли излагаете? Расскажите по-человечески, что вы делаете и как это должно работать.

Вы спрашиваете "как переделывать", но ведь не понятно, что делать-то вообще?
Вы спрашиваете про пример, но как найти пример того, что совсем не понятно?

Тенденция ясна?

Штудируйте гугл с поисковыми запросами типа "as2 game", "making grid game", "A star for 2d games" и т.д., он вам даже больше поможет, чем этот форум в данный момент.