From fa9a0d5d2265436edfe609de0350a0062805e7f3 Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 10 Jan 2014 18:22:59 +0100 Subject: [PATCH] added washing machine, fixed grabbing and rotation and position --- app/Game/Client/GameObjects/Item.js | 15 ++++++++++++++ app/Game/Config/Settings.js | 6 +++--- app/Game/Core/GameObjects/Doll.js | 9 +++++---- app/Game/Core/GameObjects/Item.js | 7 +++++++ app/Game/Core/Loader/Level.js | 31 +++++++++++++++++++++++------ 5 files changed, 55 insertions(+), 13 deletions(-) diff --git a/app/Game/Client/GameObjects/Item.js b/app/Game/Client/GameObjects/Item.js index cced995..18be4ea 100644 --- a/app/Game/Client/GameObjects/Item.js +++ b/app/Game/Client/GameObjects/Item.js @@ -47,6 +47,21 @@ function (Parent, Settings, NotificationCenter) { } ); } + + Item.prototype.flip = function(direction) { + var oldFlipDirection = this.flipDirection; + + Parent.prototype.flip.call(this, direction); + + if(oldFlipDirection != direction) { + NotificationCenter.trigger("view/updateMesh", + this.mesh, + { + xScale: direction + } + ); + } + }; return Item; diff --git a/app/Game/Config/Settings.js b/app/Game/Config/Settings.js index 6f6d2e7..41d571f 100755 --- a/app/Game/Config/Settings.js +++ b/app/Game/Config/Settings.js @@ -23,10 +23,10 @@ define({ // GAME PLAY WALK_SPEED: 4, - RUN_SPEED: 6.4, - FLY_SPEED: 5.12, + RUN_SPEED: 8, + FLY_SPEED: 6.2, JUMP_SPEED: 70, - MAX_THROW_FORCE: 15, + MAX_THROW_FORCE: 18, // restitution: bouncyness, friction: rubbing, density: mass TILE_FRICTION: 0.99, diff --git a/app/Game/Core/GameObjects/Doll.js b/app/Game/Core/GameObjects/Doll.js index 361ac67..f6639cc 100755 --- a/app/Game/Core/GameObjects/Doll.js +++ b/app/Game/Core/GameObjects/Doll.js @@ -250,10 +250,11 @@ function (Parent, Box2D, Settings, CollisionDetector, Item) { var p = this.body.GetPosition(); this.holdingItem.body.SetPosition(new Box2D.Common.Math.b2Vec2( p.x + ((this.holdingItem.options.width / Settings.RATIO / 2 + 5 / Settings.RATIO) * this.lookDirection), - p.y - (this.holdingItem.options.height / Settings.RATIO / 2) + p.y - 1 )); + this.holdingItem.flip(this.lookDirection); //this.holdingItem.body.SetAngle(Math.PI * 2 / 180 * 20 * -this.lookDirection); - this.holdingItem.body.SetAngle(0); + this.holdingItem.body.SetAngle((this.holdingItem.options.grabAngle || 0) * this.lookDirection); var jointDef = new Box2D.Dynamics.Joints.b2WeldJointDef(); jointDef.Initialize(this.body, this.holdingItem.body, this.holdingItem.body.GetWorldCenter()); @@ -273,11 +274,11 @@ function (Parent, Box2D, Settings, CollisionDetector, Item) { body.ApplyImpulse( new Box2D.Common.Math.b2Vec2( x * Settings.MAX_THROW_FORCE, - -y * Settings.MAX_THROW_FORCE * 2 // 2 is to throw higher then far + -y * Settings.MAX_THROW_FORCE * 1.5 // 1.5 is to throw higher then far ), body.GetLocalCenter() ); - body.SetAngularVelocity(5); + body.SetAngularVelocity(8 * x); }; Doll.prototype.onFootSensorDetection = function(isColliding, fixture) { diff --git a/app/Game/Core/GameObjects/Item.js b/app/Game/Core/GameObjects/Item.js index 7c05a85..baaa77d 100644 --- a/app/Game/Core/GameObjects/Item.js +++ b/app/Game/Core/GameObjects/Item.js @@ -11,6 +11,7 @@ function (Parent, Box2D, Settings) { Parent.call(this, physicsEngine, uid); this.createFixture(); this.body.ResetMassData(); + this.flipDirection = 1; } Item.prototype = Object.create(Parent.prototype); @@ -46,6 +47,12 @@ function (Parent, Box2D, Settings) { this.body.CreateFixture(fixtureDef); } + + Item.prototype.flip = function(direction) { + this.flipDirection = direction; + + // FIXME: implement body flip if necessary + }; return Item; diff --git a/app/Game/Core/Loader/Level.js b/app/Game/Core/Loader/Level.js index f004bc9..f451049 100755 --- a/app/Game/Core/Loader/Level.js +++ b/app/Game/Core/Loader/Level.js @@ -125,7 +125,8 @@ microwave: 3.744 depth: 3, x:40, y:0, - rotation: 0 + rotation: 0, + grabAngle: 0.5 }, { name:'Refridgerator', @@ -137,7 +138,8 @@ microwave: 3.744 height:53, x:120, y:0, - rotation: 0 + rotation: 0, + grabAngle: -0.5 }, { name:'Microwave', @@ -150,7 +152,8 @@ microwave: 3.744 depth: 12, x:100, y:0, - rotation: 0 + rotation: 0, + grabAngle: -0.1 }, { name:'Large Cleaver', @@ -162,7 +165,8 @@ microwave: 3.744 height:22, x:40, y:0, - rotation: 0 + rotation: 0, + grabAngle: 0.3 }, { name:'Small Cleaver', @@ -174,7 +178,8 @@ microwave: 3.744 height:17, x:60, y:0, - rotation: 0 + rotation: 0, + grabAngle: 0.3 }, { name:'Coffeemachine', @@ -198,7 +203,21 @@ microwave: 3.744 height:15, x:140, y:0, - rotation: 0 + rotation: 0, + grabAngle: 0.3 + }, + { + name:'Laundry Machine', + image:'laundry_machine.gif', + shape:'rectangle', + category:'laundry', + weight: 15, + width:24, + height:31, + x:600, + y:0, + rotation: 0, + grabAngle: -0.5 } ], tiles: /*