From 289dd6b2e69894546d47686cdadb8cc42aa6fd30 Mon Sep 17 00:00:00 2001 From: jmoenig Date: Thu, 8 Aug 2013 13:59:59 +0200 Subject: Nested Sprite Rotation --- objects.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'objects.js') diff --git a/objects.js b/objects.js index 9147ee8..af57712 100644 --- a/objects.js +++ b/objects.js @@ -2693,11 +2693,22 @@ SpriteMorph.prototype.forward = function (steps) { SpriteMorph.prototype.setHeading = function (degrees) { var x = this.xPosition(), - y = this.yPosition(); + y = this.yPosition(), + turn = degrees - this.heading; + + // apply to myself this.changed(); SpriteMorph.uber.setHeading.call(this, degrees); - this.silentGotoXY(x, y); + this.silentGotoXY(x, y, true); // just me this.positionTalkBubble(); + + // propagate to my parts + this.parts.forEach(function (part) { + var pos = new Point(part.xPosition(), part.yPosition()), + trg = pos.rotateBy(radians(turn), new Point(x, y)); + part.turn(turn); + part.gotoXY(trg.x, trg.y); + }); }; SpriteMorph.prototype.faceToXY = function (x, y) { -- cgit v1.3.1