0
我想更改父容器內2個子容器的座標。原來,我正在循環通過父容器的孩子,並單獨更改他們的x,y
......但是,這樣做更有意義,只需更改父容器的x,y
...CreateJS - 使用父級更新子級座標
問題在於...我需要以獲得每個孩子的個人改變的座標...但改變父容器的座標似乎並沒有改變孩子的座標相對於舞臺...
問題是...我怎麼能得到當我改變父母的x,y
時,更改x,y
?
感謝
所以,如果我走動的孩子們的容器本身:
function NPCMove() {
if (pointA) {
if (ContainerOfAnimals.x < 400) {
ContainerOfAnimals.x +=2;
}
else {
pointA = false;
pointB = true;
}
}
else if (pointB) {
if (ContainerOfAnimals.x > 100) {
ContainerOfAnimals.x-=2;
}
else {
pointB = false;
pointA = true;
}
}
}
我可以檢查玩家的距離,每個孩子在父容器本身使用localToGlobal
? (NPC_Array包含父容器)
for (var i = 0; i < NPC_Array.length; i++) {
//get children containers of each big Container
for (var j = 0; j < NPC_Array[i].children.length; j++) {
//need child.x's global location now...
var pt = NPC_Array[i].localToGlobal(NPC_Array[i].children[j].x, NPC_Array[i].children[j].y);
var distX = Math.abs(players_Array[0].x - pt.x);
var distY = Math.abs(players_Array[0].y - pt.y);
if (distX < 50 && distY < 50) {
//Player is near child...
感謝安德魯。請參閱上面的編輯...我是否正確使用它? – Growler
安德魯,這個問題是...現在如果我直接改變孩子的x ...而不是父母?我測試了做'ContainerOfAnimals.children [0] .x- = 2;'移動孩子......現在距離檢查器將不起作用...在那種情況下,當我進行距離檢查時......我必須檢查'localToLocal'和'localToGlobal'座標嗎? – Growler
對象player_Arr [0]是舞臺的直接子項嗎?你想確保你在相同的座標空間比較項目。如果玩家確實是舞臺上的直接子女,那麼你首先要做一個localToGlobal來獲取全局(舞臺)座標空間中的動物x/y,然後比較它們。我已更新小提琴以更適用於您的項目。 [檢查出來](http://jsfiddle.net/dR7Ur/1/)。值得注意的是,這並不影響形狀的實際寬度。你可能想研究一個好的碰撞算法,除非這純粹是一個學習exp。 – Andrew