Наконец-то я раскрыл мего баг этого мего глюченного и лажового плеера. Он заключается в разном переводе координат из локальной системы в глобальную при смещении root. Для флеш плеера 10 правильный код:
root.x = 100; root.y = -100;
var pos:Point = player.hit.localToGlobal(new Point(player.hit.x, player.hit.y));
if (level.hitTestPoint(pos.x, pos.y, true)) { trace("Collide"); ind.visible = false; }
Для флеш плеера 11 - мего ГОВНА:
root.x = 100; root.y = -100;
var pos:Point = player.hit.localToGlobal(new Point(player.hit.x, player.hit.y));
Я не смог представить вагон из винтиков. Это ж блин вагон, его можно одной картинкой нарисовать. Ну и колёса отдельно, чтоб крутились. И всё это счастье уже программно добавить, одной командой.
sw_alex Ну а теперь представь что художник нарисовал пиксельный поезд каждый вагон которого состоит из винтиков - dot'ов, в одном вагоне около 6 частей винтиков, каждая часть состоит из 20 винтиков, причем они расположены именно так как их создал художник, а теперь представь что я программно добавляю каждый винтик в поезд... - это получается тупой, бессмысленный, рутинный труд.
Ну лично мне больше нравится вариант, который озвучил Maldan - создать базовый MovieClip и цеплять на него через AddChild всё, что шевелится. И всё что не шевелится тоже. Тем более что я и так его использую. Это и правда удобно, безглючно и не тормозит. А движения камеры можно сделать, просто меняя координаты x и y этого базового мувиклипа. Что касается ссылки на базовый мувиклип - я делаю так: создаю глобальную переменную, в которую запихиваю адрес этого самого базового клипа. Ну вот в отдельном классе:
// Глобальные (общедоступные) переменные
package {
import flash.display.MovieClip;
public class global {
public static var masterClip:MovieClip; // Ссылка на основной мувиклип игры
// constructor code
public function global() {
}
}
}
Всё. Теперь переменную global.masterClip можно получить отовсюду. Чем и пользуемся. Ну а в самом базовом мувиклипе пишем так:
Ты там чо Crysis 4 что ли пишешь? хД Я же тебе сказал введи проверки на версии плееров.
А если в следующей версии поправят, то тогда игра работать не будет.
Допустим игра не работает в 11.1 плеер, сделай проверку если равен 11.1 то делат такой код иначе другой код, елси в 11.2 также же будет добавь к условию 11.2 кароче
if (version == 11.1 || version == 11.2) { новый код } else { старый код }
и теперь даже если в 11.3 или 11.4 поправят это "баг" (может наоборот фича) то у тебя все равно будет работать
да это скорее не 11 плеер говно, а реализация хД попробуй решить как-то иначе, либо сделай проверку на версии плеера, чтобы в 11 был новый метод просчета координат, а в предыдущих старый метод.
аа ты имешь если в мувике уже есть мувик и нужно получить его координаты? ну тогда да нужен этот локалТуГлобал просто я такое некада неделал, у меня максимум в мувике мувик который не долже двигаться, лишь переключаться как анимация, но и это очень редко, я все больше на битмапках использую
"Жесть, ппц как все замудрено, не надо так задрачиваться, я вообще не разу не использовал localToGlobal какой бы сложности не был бы проект. Так как они просто напросто не нужен, да и root в АС3 это какая-то странность уже. Можно передать экземпляру создаваемого класса ссылку на основной класс и обращаться к нему без всяких этих переводов координат. Ну например главный класс Main ты в не создаешь класс пули, типа pula = new pula(this) то есть передал в класс пюля, экземпляр класса Main и в пуле уже можешь получить доступ к любому свтйоству главного класса, в том числе и его координаты."
Мне важно создавать клип в клипе.
Без обид, но зачем ты используешь root? o_O.... можно ведь нормальное свойство классу задать и с ним работать...
Более разумного способа для движения камеры я не придумал.
Жесть, ппц как все замудрено, не надо так задрачиваться, я вообще не разу не использовал localToGlobal какой бы сложности не был бы проект. Так как они просто напросто не нужен, да и root в АС3 это какая-то странность уже. Можно передать экземпляру создаваемого класса ссылку на основной класс и обращаться к нему без всяких этих переводов координат. Ну например главный класс Main ты в не создаешь класс пули, типа pula = new pula(this) то есть передал в класс пюля, экземпляр класса Main и в пуле уже можешь получить доступ к любому свтйоству главного класса, в том числе и его координаты.