added washing machine, fixed grabbing and rotation and position

This commit is contained in:
Jeena 2014-01-10 18:22:59 +01:00
parent 3a07d946b0
commit fa9a0d5d22
5 changed files with 55 additions and 13 deletions

View file

@ -48,6 +48,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;
});

View file

@ -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,

View file

@ -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) {

View file

@ -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);
@ -47,6 +48,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;
});

View file

@ -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: /*