diff --git a/lib/Chuck/Loader/Level.js b/lib/Chuck/Loader/Level.js index d953d5f..9f94a10 100644 --- a/lib/Chuck/Loader/Level.js +++ b/lib/Chuck/Loader/Level.js @@ -36,8 +36,8 @@ define(["Chuck/Settings", "Box2D/Box2D"], function(Settings, Box2D) { var bodyDef = new Box2D.Dynamics.b2BodyDef(); bodyDef.type = Box2D.Dynamics.b2Body.b2_staticBody; - bodyDef.position.x = tile.x / Settings.RATIO * Settings.RATIO / 2; - bodyDef.position.y = tile.y / Settings.RATIO * Settings.RATIO / 2; + bodyDef.position.x = tile.x * Settings.TILE_SIZE / Settings.RATIO; + bodyDef.position.y = tile.y * Settings.TILE_SIZE / Settings.RATIO; bodyDef.angle = tile.r * 90 * Math.PI / 180; var tileShape = new Box2D.Collision.Shapes.b2PolygonShape(); @@ -179,82 +179,83 @@ define(["Chuck/Settings", "Box2D/Box2D"], function(Settings, Box2D) { this.levelObject = { tiles: [ - {s:1, x: 3, y:18}, - {s:1, x:37, y:27}, - {s:1, x:20, y:24}, - {s:1, x:24, y:27}, - {s:1, x:37, y:26}, - {s:1, x: 9, y:18}, - {s:2, x:32, y:25, r:1}, - {s:1, x:23, y:27}, - {s:3, x:34, y:24, r:1}, - {s:1, x:35, y:28}, - {s:4, x:17, y:21}, - {s:2, x:21, y:24}, - {s:2, x:42, y:23, r:3}, - {s:3, x:30, y:24, r:3}, - {s:2, x:22, y:25}, - {s:1, x:40, y:25}, - {s:1, x:38, y:26}, - {s:1, x: 8, y: 8}, - {s:1, x:38, y:25}, - {s:1, x:28, y:28}, - {s:1, x:36, y:27}, - {s:1, x: 7, y:18}, - {s:2, x:20, y:23}, - {s:2, x:43, y:23, r:1}, - {s:6, x:31, y:24}, - {s:1, x:16, y:21}, - {s:1, x: 1, y:18}, - {s:1, x:31, y:29}, - {s:2, x:30, y:25, r:2}, - {s:4, x:11, y:18}, - {s:1, x:28, y:27}, - {s:1, x:28, y:26}, - {s:1, x:28, y:29}, - {s:1, x:19, y:23}, - {s:5, x:12, y:18, r:1}, - {s:1, x:42, y:24}, - {s:6, x:33, y:24, r:2}, - {s:1, x:39, y:25}, - {s:1, x:33, y:29}, - {s:1, x:29, y:29}, - {s:1, x:21, y:25}, - {s:1, x:27, y:27}, - {s:5, x:16, y:20, r:1}, - {s:1, x: 5, y:18}, - {s:5, x:18, y:21, r:1}, - {s:4, x:13, y:19}, - {s:1, x:14, y:20}, - {s:1, x:30, y:29}, - {s:1, x: 4, y:18}, - {s:1, x: 6, y:18}, - {s:1, x: 2, y:18}, - {s:1, x:32, y:24}, - {s:1, x:34, y:29}, - {s:1, x:32, y:29}, - {s:2, x: 1, y:16}, - {s:1, x:10, y:18}, - {s:1, x:42, y:25}, - {s:2, x:28, y:25, r:3}, - {s:2, x: 0, y:16, r:2}, - {s:1, x:22, y:27}, - {s:1, x:25, y:27}, - {s:1, x:31, y:25}, - {s:5, x:14, y:19, r:1}, - {s:1, x:41, y:25}, - {s:1, x:36, y:28}, - {s:4, x:15, y:20}, - {s:2, x:19, y:22}, - {s:3, x:26, y:26, r:3}, - {s:1, x:26, y:27}, - {s:1, x:18, y:22}, - {s:6, x:27, y:26}, - {s:1, x:22, y:26}, - {s:1, x: 1, y:17}, - {s:1, x:35, y:29}, - {s:1, x:12, y:1} - ] +{s:1, x:3, y:18}, +{s:1, x:37, y:27}, +{s:1, x:20, y:24}, +{s:1, x:24, y:27}, +{s:1, x:37, y:26}, +{s:1, x:9, y:18}, +{s:2, x:32, y:25, r:1}, +{s:1, x:23, y:27}, +{s:3, x:34, y:24, r:1}, +{s:1, x:35, y:28}, +{s:4, x:17, y:21}, +{s:2, x:21, y:24}, +{s:2, x:42, y:23, r:3}, +{s:3, x:30, y:24, r:3}, +{s:2, x:22, y:25}, +{s:1, x:40, y:25}, +{s:1, x:38, y:26}, +{s:1, x:8, y:18}, +{s:1, x:38, y:25}, +{s:1, x:28, y:28}, +{s:1, x:36, y:27}, +{s:1, x:7, y:18}, +{s:2, x:20, y:23}, +{s:2, x:43, y:23, r:1}, +{s:6, x:31, y:24}, +{s:1, x:16, y:21}, +{s:1, x:1, y:18}, +{s:1, x:31, y:29}, +{s:2, x:30, y:25, r:2}, +{s:4, x:11, y:18}, +{s:1, x:28, y:27}, +{s:1, x:28, y:26}, +{s:1, x:28, y:29}, +{s:1, x:19, y:23}, +{s:5, x:12, y:18, r:1}, +{s:1, x:42, y:24}, +{s:6, x:33, y:24, r:2}, +{s:1, x:39, y:25}, +{s:1, x:33, y:29}, +{s:1, x:29, y:29}, +{s:1, x:21, y:25}, +{s:1, x:27, y:27}, +{s:5, x:16, y:20, r:1}, +{s:1, x:5, y:18}, +{s:5, x:18, y:21, r:1}, +{s:4, x:13, y:19}, +{s:1, x:14, y:20}, +{s:1, x:30, y:29}, +{s:1, x:4, y:18}, +{s:1, x:6, y:18}, +{s:1, x:2, y:18}, +{s:1, x:32, y:24}, +{s:1, x:34, y:29}, +{s:1, x:32, y:29}, +{s:2, x:1, y:16}, +{s:1, x:10, y:18}, +{s:1, x:42, y:25}, +{s:2, x:28, y:25, r:3}, +{s:2, x:0, y:16, r:2}, +{s:1, x:22, y:27}, +{s:1, x:25, y:27}, +{s:1, x:31, y:25}, +{s:5, x:14, y:19, r:1}, +{s:1, x:41, y:25}, +{s:1, x:36, y:28}, +{s:4, x:15, y:20}, +{s:2, x:19, y:22}, +{s:3, x:26, y:26, r:3}, +{s:1, x:26, y:27}, +{s:1, x:18, y:22}, +{s:6, x:27, y:26}, +{s:1, x:22, y:26}, +{s:1, x:1, y:17}, +{s:1, x:35, y:29}, +{s:1, x:12, y:19} + + ] } } diff --git a/lib/Chuck/Physics/Doll.js b/lib/Chuck/Physics/Doll.js index e0d6692..32bd866 100644 --- a/lib/Chuck/Physics/Doll.js +++ b/lib/Chuck/Physics/Doll.js @@ -100,7 +100,7 @@ define(["Box2D/Box2D", "Chuck/Settings"], function(Box2D, Settings){ } Doll.prototype.jumping = function () { - var vector = new Box2D.Common.Math.b2Vec2(0, -0.1); + var vector = new Box2D.Common.Math.b2Vec2(0, -0.05); this._body.ApplyImpulse(vector, this._body.GetPosition()); } diff --git a/lib/Chuck/Physics/Engine.js b/lib/Chuck/Physics/Engine.js index 0455636..4bab228 100644 --- a/lib/Chuck/Physics/Engine.js +++ b/lib/Chuck/Physics/Engine.js @@ -33,7 +33,6 @@ define(["Chuck/Settings", "Box2D/Box2D"], function(Settings, Box2D){ debugDraw.SetSprite(debugSprite); debugDraw.SetDrawScale(Settings.RATIO); - debugDraw.SetDrawScale(30.0); debugDraw.SetFillAlpha(0.5); debugDraw.SetLineThickness(1.0); diff --git a/lib/Chuck/Processor.js b/lib/Chuck/Processor.js index 45d8c5c..565150c 100644 --- a/lib/Chuck/Processor.js +++ b/lib/Chuck/Processor.js @@ -4,10 +4,11 @@ var requires = [ "Chuck/Control/InputControlUnit", "Chuck/Settings", "Box2D/Box2D", - "Chuck/Loader/Level" + "Chuck/Loader/Level", + "RequestAnimationFrame" ]; -define(requires, function(PhysicsEngine, Player, InputControlUnit, Settings, Box2D, Level){ +define(requires, function(PhysicsEngine, Player, InputControlUnit, Settings, Box2D, Level, requestAnimFrame){ function Processor () { this._me; @@ -41,10 +42,11 @@ define(requires, function(PhysicsEngine, Player, InputControlUnit, Settings, Box //this._physicsEngine.setCollisionDetector(this._me); } - //new Chuck.Loader.Level(this._physicsEngine); + //new Chuck.Loader.Level(this._physicsEngine);u //new Items(); - setInterval(this._update, 1000/60, this); + //setInterval(this._update, 1000/60, this); + this._update(); } Processor.prototype.loadLevel = function(path) { @@ -101,15 +103,18 @@ define(requires, function(PhysicsEngine, Player, InputControlUnit, Settings, Box return this._me; } - Processor.prototype._update = function(self) { + Processor.prototype._update = function() { + + + requestAnimFrame(this._update.bind(this)); //console.log(self._physicsEngine.getWorld().GetBodyList().GetPosition()); - self._physicsEngine.update(); + this._physicsEngine.update(); if(Settings.IS_BROWSER_ENVIRONMENT) { - self._inputControlUnit.update(); - self._me.update(); + this._inputControlUnit.update(); + this._me.update(); //self._camera.update(); //self._repository.update(); } diff --git a/lib/Chuck/Settings.js b/lib/Chuck/Settings.js index b1226d6..6cddb1d 100644 --- a/lib/Chuck/Settings.js +++ b/lib/Chuck/Settings.js @@ -1,45 +1,46 @@ define(function() { var Settings = { - STAGE_WIDTH : 600, - STAGE_HEIGHT : 400, + STAGE_WIDTH: 600, + STAGE_HEIGHT: 400, // BOX2D INITIALATORS - RATIO : 30, - BOX2D_WORLD_AABB_SIZE : 3000, - BOX2D_ALLOW_SLEEP : true, - BOX2D_GRAVITY : 16, - BOX2D_VELOCITY_ITERATIONS : 5, - BOX2D_POSITION_ITERATIONS : 5, - BOX2D_TIME_STEP : 1 / 30, + RATIO: 35, + BOX2D_WORLD_AABB_SIZE: 3000, + BOX2D_ALLOW_SLEEP: true, + BOX2D_GRAVITY: 16, + BOX2D_VELOCITY_ITERATIONS: 5, + BOX2D_POSITION_ITERATIONS: 5, + BOX2D_TIME_STEP: 1 / 60, // GRAPHIC PATHS - GRAPHICS_PATH : 'img', - GRAPHICS_SUBPATH_ITEMS : 'Items', - GRAPHICS_SUBPATH_CHARACTERS : 'Characters', + GRAPHICS_PATH: 'img', + GRAPHICS_SUBPATH_ITEMS: 'Items', + GRAPHICS_SUBPATH_CHARACTERS: 'Characters', - TILE_SIZE : 15, + TILE_SIZE: 15, // GAME PLAY - WALK_SPEED : 2.5, - RUN_SPEED : 4.0, - FLY_SPEED : 3.2, - JUMP_SPEED : 3.0, + WALK_SPEED: 2.5, + RUN_SPEED: 4.0, + FLY_SPEED: 3.2, + JUMP_SPEED: 3.0, + JUMP_UPLIFT: 0.05, - // restitution : bouncyness, friction : rubbing, density : mass - TILE_FRICTION : 0.99, - TILE_RESTITUTION : 0.1, + // restitution: bouncyness, friction: rubbing, density: mass + TILE_FRICTION: 0.99, + TILE_RESTITUTION: 0.1, - PLAYER_DENSITY : 0.96, - PLAYER_FRICTION : 5, - PLAYER_MOTION_FRICTION : 0.1, - PLAYER_RESTITUTION : 0.0, - PLAYER_LINEAR_DAMPING : .5, + PLAYER_DENSITY: 0.96, + PLAYER_FRICTION: 5, + PLAYER_MOTION_FRICTION: 0.1, + PLAYER_RESTITUTION: 0.0, + PLAYER_LINEAR_DAMPING: .5, - ITEM_DENSITY : 0.9, - ITEM_FRICTION : 0.99, - ITEM_RESTITUTION : 0.02, + ITEM_DENSITY: 0.9, + ITEM_FRICTION: 0.99, + ITEM_RESTITUTION: 0.02, // debug draw DEBUG_DRAW_CANVAS_SPRITE: isBrowserEnvironment() ? document.getElementById("canvas").getContext("2d") : undefined, diff --git a/lib/RequestAnimationFrame.js b/lib/RequestAnimationFrame.js new file mode 100644 index 0000000..62f7843 --- /dev/null +++ b/lib/RequestAnimationFrame.js @@ -0,0 +1,15 @@ +define(['Chuck/Settings'], function(Settings) { + + var requestAnimFrame = (function(){ + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function( callback ){ + setTimeout(callback, Settings.BOX2D_TIME_STEP * 1000); + }; + })(); + + return requestAnimFrame; +}); \ No newline at end of file