summaryrefslogtreecommitdiff
path: root/objects.js
diff options
context:
space:
mode:
Diffstat (limited to 'objects.js')
-rw-r--r--objects.js15
1 files changed, 13 insertions, 2 deletions
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) {