summaryrefslogtreecommitdiffstats
path: root/js-platformer/src
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2015-07-30 23:19:36 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2015-07-30 23:19:36 +0300
commitb4783ab327f290c4e4441a26a2ec2edfdb721175 (patch)
treea1a6a25297c55afa2d60c2836fa7f6d676d66fd8 /js-platformer/src
parentb10bd1c1070bee72732004690964c800eca71d91 (diff)
Add js-platformer.
Diffstat (limited to 'js-platformer/src')
-rw-r--r--js-platformer/src/engine.js26
-rw-r--r--js-platformer/src/gameobject.js28
-rw-r--r--js-platformer/src/platformer.js9
-rw-r--r--js-platformer/src/player.js18
-rw-r--r--js-platformer/src/settings.js8
5 files changed, 89 insertions, 0 deletions
diff --git a/js-platformer/src/engine.js b/js-platformer/src/engine.js
new file mode 100644
index 0000000..7dc9ddc
--- /dev/null
+++ b/js-platformer/src/engine.js
@@ -0,0 +1,26 @@
+var Engine = function() {
+
+ this.stage = new PIXI.Stage(settings.STAGE_BGCOLOR);
+ this.renderer = PIXI.autoDetectRenderer(settings.STAGE_WIDTH, settings.STAGE_HEIGHT);
+
+ this.gameObjectList = [];
+
+ this.update = function() {
+ for (var i = 0; i < this.gameObjectList.length; i++) {
+ this.gameObjectList[i].update();
+ }
+
+
+ this.renderer.render(this.stage);
+ }
+
+ this.addGameObject = function(gameObject) {
+ this.gameObjectList.push(gameObject);
+ this.stage.addChild(gameObject.sprite);
+ }
+
+ return this;
+}
+
+var engine = new Engine();
+Engine.instance = engine; \ No newline at end of file
diff --git a/js-platformer/src/gameobject.js b/js-platformer/src/gameobject.js
new file mode 100644
index 0000000..c7e47b4
--- /dev/null
+++ b/js-platformer/src/gameobject.js
@@ -0,0 +1,28 @@
+var GameObjectPrototype = function() {
+ this.texture = PIXI.Texture.fromImage("res/red.png");
+ this.sprite = new PIXI.Sprite(this.texture);
+
+ this.initPosition = function() {
+ this.sprite.anchor.x = 0.5;
+ this.sprite.anchor.y = 0.5;
+
+ this.sprite.position.x = settings.STAGE_WIDTH * 0.5;
+ this.sprite.position.y = settings.STAGE_HEIGHT * 0.5;
+ }
+
+ return this;
+}
+
+var GameObject = function() {
+
+ this.initPosition();
+ Engine.instance.addGameObject(this);
+
+ this.update = function() {
+
+ }
+
+ return this;
+}
+
+GameObject.prototype = new GameObjectPrototype(); \ No newline at end of file
diff --git a/js-platformer/src/platformer.js b/js-platformer/src/platformer.js
new file mode 100644
index 0000000..45ede21
--- /dev/null
+++ b/js-platformer/src/platformer.js
@@ -0,0 +1,9 @@
+document.body.appendChild(Engine.instance.renderer.view);
+
+requestAnimFrame(animate);
+
+function animate() {
+ requestAnimFrame(animate);
+
+ Engine.instance.update();
+} \ No newline at end of file
diff --git a/js-platformer/src/player.js b/js-platformer/src/player.js
new file mode 100644
index 0000000..e3520a5
--- /dev/null
+++ b/js-platformer/src/player.js
@@ -0,0 +1,18 @@
+var Player = function() {
+ this.texture = PIXI.Texture.fromImage("res/player.png");
+ this.sprite = new PIXI.Sprite(this.texture);
+
+ Engine.instance.addGameObject(this);
+ this.initPosition();
+
+ this.update = function() {
+ //this.prototype.update.call(this);
+ }
+
+ return this;
+}
+
+Player.prototype = new GameObjectPrototype();
+
+//create a player instance
+Engine.player = new Player(); \ No newline at end of file
diff --git a/js-platformer/src/settings.js b/js-platformer/src/settings.js
new file mode 100644
index 0000000..230003c
--- /dev/null
+++ b/js-platformer/src/settings.js
@@ -0,0 +1,8 @@
+var Settings = function() {
+ // stage constants
+ this.STAGE_WIDTH = 800;
+ this.STAGE_HEIGHT = 600;
+ this.STAGE_BGCOLOR = 0x111111;
+}
+
+var settings = new Settings(); \ No newline at end of file