diff --git a/js/Runtime.js b/js/Runtime.js index 00b7a38..0b8defb 100644 --- a/js/Runtime.js +++ b/js/Runtime.js @@ -176,6 +176,22 @@ Runtime.prototype.spriteNamed = function(n) { }); return selected_sprite; } + +Runtime.prototype.getTimeString = function(which) { + // Return local time properties. + var now = new Date(); + switch (which) { + case 'hour': return now.getHours(); + case 'minute': return now.getMinutes(); + case 'second': return now.getSeconds(); + case 'year': return now.getFullYear(); // four digit year (e.g. 2012) + case 'month': return now.getMonth() + 1; // 1-12 + case 'date': return now.getDate(); // 1-31 + case 'day of week': return now.getDay() + 1; // 1-7, where 1 is Sunday + } + return ''; // shouldn't happen +} + // Reassigns z-indices for layer functions Runtime.prototype.reassignZ = function(target, move) { diff --git a/js/primitives/SensingPrims.js b/js/primitives/SensingPrims.js index 0529081..49ec242 100644 --- a/js/primitives/SensingPrims.js +++ b/js/primitives/SensingPrims.js @@ -29,6 +29,8 @@ SensingPrims.prototype.addPrimsTo = function(primTable) { primTable['distanceTo:'] = this.primDistanceTo; primTable['getAttribute:of:'] = this.primGetAttribute; + + primTable['timeAndDate'] = function(b){ return runtime.getTimeString(interp.arg(b, 0)); }; } SensingPrims.prototype.primTouching = function(b) { @@ -124,9 +126,9 @@ var stageColorHitTest = function(target, color) { var stageColorByColorHitTest = function(target, myColor, otherColor) { var threshold_acceptable = function(a, b, c, x, y, z) { - diff_a = Math.abs(a-x); - diff_b = Math.abs(b-y); - diff_c = Math.abs(c-z); + var diff_a = Math.abs(a-x); + var diff_b = Math.abs(b-y); + var diff_c = Math.abs(c-z); if (diff_a + diff_b + diff_c < 100) { return true; } @@ -154,7 +156,7 @@ var stageColorByColorHitTest = function(target, myColor, otherColor) { var hitCanvas = document.createElement('canvas'); hitCanvas.width = 480; hitCanvas.height = 360; - hitCtx = hitCanvas.getContext('2d'); + var hitCtx = hitCanvas.getContext('2d'); $.each(runtime.sprites, function(i, sprite) { if (sprite != target) sprite.stamp(hitCtx, 100);