你需要检测4种情况: 1)LAYER1的下边儿BOTTOM=LAYER2的上边TOP
2)LAYER1的上边儿TOP=LAYER2的下边BOTTOM
3)LAYER1的左边儿LEFT=LAYER2的右边RIGHT
4)LAYER1的右边儿RIGHT=LAYER2的左边LEFT 4个条件分着写,这样有助于你后续区分列式,用于检测碰撞,当符合1-4任意条件时就调用如下: if(条件1){ var L1=parseInt(document.getElementById("layer1").style.left.replace("px",""))
var T1=parseInt(document.getElementById("layer1").style.top.replace("px",""))
var L2=parseInt(document.getElementById("layer2").style.left.replace("px",""))
var T2=parseInt(document.getElementById("layer2").style.top.replace("px",""))//首先需要计算偏移量,因为两个均匀物体碰撞后是朝着他们中轴线方向,反向离去,所以要计算一个方向比例,横轴之差math.abs(L1-L2)与纵轴之差math.abs(R1-R2)之间的比例是LAYER1和LAYER2后续运动的TOP与LEFT(去OFFSET后)的比例,然后直到碰撞到墙壁边缘继续执行你以前的代码。 } 4个条件都这么些,就不详细说了,我做过此类游戏,托盘计分的,你按这个思路来就行了。
2)LAYER1的上边儿TOP=LAYER2的下边BOTTOM
3)LAYER1的左边儿LEFT=LAYER2的右边RIGHT
4)LAYER1的右边儿RIGHT=LAYER2的左边LEFT 4个条件分着写,这样有助于你后续区分列式,用于检测碰撞,当符合1-4任意条件时就调用如下: if(条件1){ var L1=parseInt(document.getElementById("layer1").style.left.replace("px",""))
var T1=parseInt(document.getElementById("layer1").style.top.replace("px",""))
var L2=parseInt(document.getElementById("layer2").style.left.replace("px",""))
var T2=parseInt(document.getElementById("layer2").style.top.replace("px",""))//首先需要计算偏移量,因为两个均匀物体碰撞后是朝着他们中轴线方向,反向离去,所以要计算一个方向比例,横轴之差math.abs(L1-L2)与纵轴之差math.abs(R1-R2)之间的比例是LAYER1和LAYER2后续运动的TOP与LEFT(去OFFSET后)的比例,然后直到碰撞到墙壁边缘继续执行你以前的代码。 } 4个条件都这么些,就不详细说了,我做过此类游戏,托盘计分的,你按这个思路来就行了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货