HTML5 画布对象碰撞和物理
html5 canvas object collisions and physics
我正在开发一个简单的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();
}
});
}
你可以尝试像Box2D.js这样的库。它可以处理从碰撞检测到重力的所有内容。
查看它的演示。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- HTML5 画布对象碰撞和物理
- 对 2 个对象进行碰撞检测
- 查找同一碰撞路径上两个对象之间的接触时间
- 如何检测此JavaScript游戏的对象碰撞
- 在游戏对象进入触发碰撞体时将其销毁
- HTML5画布游戏对象在碰撞后卡住
- 如何进行碰撞预防?(重置玩家对象的位置)
- Three.js碰撞并移除碰撞的对象
- 对象在与其他对象碰撞之前不会被移除
- 我如何保持变换控制从移动你的对象,如果有碰撞,使用光线投射
- 检测一个对象与多个对象碰撞/否定的项数
- 是否有一种简单的方法来知道如果一个随机定位的对象将最终在其他对象的顶部,并触发碰撞在物理
- 碰撞检测只影响最后渲染的对象