diff --git a/articles/dynamic_systems_in_games.article.html b/articles/dynamic_systems_in_games.article.html index bc4a68b..b32ff2f 100644 --- a/articles/dynamic_systems_in_games.article.html +++ b/articles/dynamic_systems_in_games.article.html @@ -10,9 +10,9 @@ @@ -39,9 +39,9 @@ diff --git a/articles/dynamic_systems_in_games/engine.js b/articles/dynamic_systems_in_games/engine.js index c8614fd..e118118 100644 --- a/articles/dynamic_systems_in_games/engine.js +++ b/articles/dynamic_systems_in_games/engine.js @@ -1,114 +1,163 @@ var a=true; function engine(element, reaction_rate_function) { - var container = $(element); + var e = {}; // the engine object! + e.container = $(element); var q = {}; + e.quantities = q; q.temperature = { "update": function () { + var old_value = this.value; this.value += reaction_rate_function(q)*timestep/1000 if (this.value < 0) { this.value = 0; } + if (old_value != this.value) { return true; } }, "out": function () { - container.find('.temp-out').html(this.value.toFixed(2)); - if (this.value > damage_threshhold) { container.find('.damage').show();} - else { container.find('.damage').hide(); } - if (this.value < q.ignition_threshhold.value) { container.find('.noignition').show(); } - else { container.find('.noignition').hide(); } + e.container.find('.temp-out').html(this.value.toFixed(2)); + if (this.value > q.damage_threshhold.value) { e.container.find('.damage').show();} + else { e.container.find('.damage').hide(); } + if (this.value < q.ignition_threshhold.value) { e.container.find('.noignition').show(); } + else { e.container.find('.noignition').hide(); } + + for (var i=0; i