Ik heb de volgende class, die ik gebruik in een platformer.
Nu lukt het me alleen niet om de zwaartekracht goed te krijgen, ik heb al op internet rond gezocht maar ik heb nog niet echt een handige manier gevonden om dit te doen.
Ken iemand me hiermee helpen?
Alvast bedankt!
/**
* @class Player
*/
var Player = function Player()
{
/**
* @returns {Object}
*/
var _self = this;
/**
* @returns {Number}
*/
_self.id = -1;
/**
* @returns {String}
*/
_self.name = 'player';
/**
* @returns {Number}
*/
_self.x = 0;
/**
* @returns {Number}
*/
_self.y = 0;
/**
* @returns {Number}
*/
_self.z = 0;
/**
* @returns {Number}
*/
_self.width = 32;
/**
* @returns {Number}
*/
_self.height = 32;
/**
* @returns {String}
*/
_self.color = '#FF0000';
/**
* @returns {Number}
*/
_self.speed = 3;
/**
* @returns {Number}
*/
_self.velocityX = 0;
/**
* @returns {Number}
*/
_self.velocityY = 0;
/**
* @returns {Number}
*/
_self.gravity = 0.8;
/**
* @returns {Boolean}
*/
_self.onFloor = false;
/**
* @syntax Player.onUpdate()
*/
_self.onUpdate = function()
{
_self.velocityY += _self.gravity;
_self.y += _self.velocityY;
Client.getEntitiesByName('collision1').forEach(function(collision1, index)
{
if (collide(_self, collision1))
{
}
});
if (Client.isKeyPressed('up'))
{
_self.velocityY = -15;
}
if (Client.isKeyHold('left'))
{
_self.x -= _self.speed;
}
if (Client.isKeyHold('right'))
{
_self.x += _self.speed;
}
};
/**
* @syntax Player.onDraw()
*/
_self.onDraw = function()
{
Client.context.fillStyle = _self.color;
Client.context.fillRect(_self.x, _self.y, _self.width, _self.height);
};
};