Mercurial > mhrok3
changeset 9:8864a2065794
separate a library
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Tue, 30 Oct 2012 20:50:31 +0100 |
| parents | 749a58f3117c |
| children | 6314a8b18d71 |
| files | mhrok.js |
| diffstat | 1 files changed, 46 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/mhrok.js Tue Oct 30 20:32:26 2012 +0100 +++ b/mhrok.js Tue Oct 30 20:50:31 2012 +0100 @@ -1,37 +1,16 @@ -(function () { +MhrokLib = function () { var Mob = function () { - this.animation = 'stand'; this.x = 0; this.y = 0; this.x = 0; - this.frame = 0; this.frameX = 0; this.frameY = 0; }; Mob.prototype = {}; Mob.prototype.classes = 'mhrok-mob'; - Mob.prototype.animations = { - stand: { - frames: [ - [0, 0], [0, 0], [0, 1], [0, 1], - [0, 2], [0, 2], [0, 3], [0, 3], - ], - motion: [ - [0, 0], [0, 0], [0, 0], [0, 0], - [0, 0], [0, 0], [0, 0], [0, 0], - ] - } - }; Mob.prototype.animate = function (frame) { - var animation = this.animations[this.animation]; - var motion = animation.motion[frame]; - var tile = animation.frames[this.frame]; - this.frame = frame; - this.frameX = tile[0]; - this.frameY = tile[1]; - this.x += motion[0]; - this.y += motion[1]; - this.z = this.y; + this.frameX = 0; + this.frameY = Math.round(frame / 2); }; Mob.prototype.update = function (game) {}; Mob.prototype.html = function () { @@ -85,6 +64,7 @@ this.frameX = dir[2] + 8; this.frameY = Math.round(frame / 2); }; + this.z = this.y; }; Hero.prototype.update = function (game) { if (game.keys[37] || game.last_key === 37) { // Left arrow @@ -134,40 +114,13 @@ this.map_element = element.getElementsByClassName('mhrok-map')[0]; this.mobs_element = element.getElementsByClassName('mhrok-mobs')[0]; this.element = element; - }; - Game.prototype = {}; - Game.prototype.run = function () { this.frame_number = 0; this.mobs = []; this.keys = {}; this.last_key = null; - - this.level = new Level([ - 'XXXXXXXXXXXXXXXXXXXX', - 'XabaaaaaaaaaaaaaaaaX', - 'XaaaaaabaaaaaaaaaaaX', - 'XaaaabbbaaaaaaaaaabX', - 'XaababbbaaaaaaaaaabX', - 'XaaaaabbbaabbaaaaabX', - 'XaaaaaabbaabbaaaaaaX', - 'XaaaaaaaaaaaaaabbaaX', - 'XaaaaaaaaaaabaabbaaX', - 'XaaaaaaaaaaaaaaaaaaX', - 'XaaaaaaaaaaaabbbbabX', - 'XaaaaaaaaaaaabbbbabX', - 'XaaabbaaaaaaaaabaabX', - 'XaabbbbaaaaaaaaaabbX', - 'XaabbbbaaaaaaaaaabbX', - 'XaaabbaaaaaaaaaaabbX', - 'XaaaaaaaaaabaabbbbbX', - 'XaaaaaabbabbbbbbbbbX', - 'XaaaabbbbbbbbbbbbbbX', - 'XXXXXXXXXXXXXXXXXXXX', - ]); - this.map_element.innerHTML = this.level.html(); - this.hero = new Hero(this); - this.mobs.push(this.hero); - + }; + Game.prototype = {}; + Game.prototype.run = function () { var that = this; this.animation = window.setInterval(function () { that.frame(); @@ -263,6 +216,45 @@ this.mobs_element.innerHTML = html; }; + return { + Game: Game, + Mob: Mob, + Hero: Hero, + Level: Level, + } +} (); + + +(function () { + var Game = function () { + MhrokLib.Game.apply(this, arguments); + this.level = new MhrokLib.Level([ + 'XXXXXXXXXXXXXXXXXXXX', + 'XabaaaaaaaaaaaaaaaaX', + 'XaaaaaabaaaaaaaaaaaX', + 'XaaaabbbaaaaaaaaaabX', + 'XaababbbaaaaaaaaaabX', + 'XaaaaabbbaabbaaaaabX', + 'XaaaaaabbaabbaaaaaaX', + 'XaaaaaaaaaaaaaabbaaX', + 'XaaaaaaaaaaabaabbaaX', + 'XaaaaaaaaaaaaaaaaaaX', + 'XaaaaaaaaaaaabbbbabX', + 'XaaaaaaaaaaaabbbbabX', + 'XaaabbaaaaaaaaabaabX', + 'XaabbbbaaaaaaaaaabbX', + 'XaabbbbaaaaaaaaaabbX', + 'XaaabbaaaaaaaaaaabbX', + 'XaaaaaaaaaabaabbbbbX', + 'XaaaaaabbabbbbbbbbbX', + 'XaaaabbbbbbbbbbbbbbX', + 'XXXXXXXXXXXXXXXXXXXX', + ]); + this.map_element.innerHTML = this.level.html(); + this.hero = new MhrokLib.Hero(); + this.mobs.push(this.hero); + }; + Game.prototype = Object.create(MhrokLib.Game.prototype); window.addEventListener('load', function () { var element = window.document.getElementById('mhrok'); @@ -271,5 +263,4 @@ game.run(); }; }, false); - } ());
