X-Git-Url: https://git.yukkurigames.com/?p=featherfall2.git;a=blobdiff_plain;f=src%2Fyuu%2Fcore.js;h=1923d2cdf700086f60fd3997d1251794ed2faf33;hp=8b16707c8d1a1c369a5aa19f1161d4d68bc86dc3;hb=5b22796116262ad2de3b7f6cd0fb635796362bbc;hpb=d2962105772fbdc548118bd65cd5bb4934e66085 diff --git a/src/yuu/core.js b/src/yuu/core.js index 8b16707..1923d2c 100644 --- a/src/yuu/core.js +++ b/src/yuu/core.js @@ -420,25 +420,29 @@ gui.Window.get().showDevTools(); }, "show developer tools"); - yuu.anchorPoint = function (anchor, x0, y0, x1, y1) { + var anchorPoint = yuu.anchorPoint = yf.argcd( /** Calculate the anchor point for a box given extents and anchor mode This function is the inverse of yuu.bottomLeft. */ - switch (anchor) { - case "center": return [(x0 + x1) / 2, (y0 + y1) / 2]; - case "top": return [(x0 + x1) / 2, y1]; - case "bottom": return [(x0 + x1) / 2, y0]; - case "left": return [x0, (y0 + y1) / 2]; - case "right": return [x1, (y0 + y1) / 2]; - - case "topleft": return [x0, y1]; - case "topright": return [x1, y1]; - case "bottomleft": return [x0, y0]; - case "bottomright": return [x0, y0]; - default: return [anchor[0], anchor[1]]; + function (anchor, aabb) { + return anchorPoint(anchor, aabb.x0, aabb.y0, aabb.x1, aabb.y1); + }, + function (anchor, x0, y0, x1, y1) { + switch (anchor) { + case "center": return [(x0 + x1) / 2, (y0 + y1) / 2]; + case "top": return [(x0 + x1) / 2, y1]; + case "bottom": return [(x0 + x1) / 2, y0]; + case "left": return [x0, (y0 + y1) / 2]; + case "right": return [x1, (y0 + y1) / 2]; + case "topleft": return [x0, y1]; + case "topright": return [x1, y1]; + case "bottomleft": return [x0, y0]; + case "bottomright": return [x0, y0]; + default: return [anchor[0], anchor[1]]; + } } - }; + ); yuu.bottomLeft = function (anchor, x, y, w, h) { /** Calculate the bottom-left for a box given size and anchor mode @@ -717,6 +721,13 @@ } ), + xc: { + get: function () { return (this.x0 + this.x1) / 2; } + }, + yc: { + get: function () { return (this.y0 + this.y1) / 2; } + }, + w: { get: function () { return this.x1 - this.x0; }, set: function (w) { this.x1 = this.x0 + w; } @@ -729,6 +740,9 @@ size: { swizzle: "wh" }, + hw: { get: function () { return this.w / 2; } }, + hh: { get: function () { return this.h / 2; } }, + contains: yf.argcd( function (p) { return this.contains(p.x, p.y); }, function (x, y) {