私は単純なhtml5プラットフォーマーに取り組んでおり、前のゲームを構築していますが、衝突と物理に問題があります。以下は、床とそれが衝突を処理する方法に関するコードのサンプルです。完全なコードはここにあります。 http://www.ambitiongames.co.uk/dev/game.phpここにゲームがありますhttp://www.ambitiongames.co.uk/dev/
私が抱えている問題は、衝突がイベントの取得に基づいていることです。これにより、プレイヤーがフロアにいない場合があります。
また、ジャンプと落下の作業方法により、重力がありません。つまり、プレーヤーはより高い棚にジャンプして、空中に降りることができます。
恒久的な重力状態を設定するための良い方法は何ですか?
床や他の物体と相互作用/衝突するための良い方法は何ですか?
that.draw = function(){
try {
ctx.drawImage(that.image, that.x, that.y, that.width, that.height);
} catch (e) {
}
}
return that;
};
var nrOffloors = 40,
floors = [],
floorWidth = 20,
floorHeight = 40;
var generatefloor = function(){
for (var i = 0; i < 10; i++) {
floors[i] = new Floor(i * 20,280);
}
for (var i = 10; i < 12; i++) {
floors[i] = new Floor(i * 20,260);
}
}();
var checkCollisionfloor = function(){
floors.forEach(function(e, ind){
if (
(player.X < e.x + floorWidth) &&
(player.X + player.width > e.x) &&
(player.Y + player.height > e.y) &&
(player.Y + player.height < e.y + floorHeight)
) {
e.onCollide();
}
});
}