jQuery、JavaScript火柴人游戏攻击范围判定方法

一、人物攻击有2方向:向和向

二、人物向左时:1.判断所有被攻击目标离div的距离是否比人物离div距离大

                        我们将要攻击的目标分成条线:第条:攻击目标距离div为第一条线

                        第条:攻击目标距离div的距离加上攻击目标宽度的一半

                        第条:攻击目标距离div的距离加上攻击目标宽度(整个宽)

二、人物向右时:1.判断所有被攻击目标离div的距离是否比人物离div距离小

                        我们将要攻击的目标分成条线:第条:攻击目标距离div

                        第条:攻击目标距离div的距离加上攻击目标宽度的一半

                        第条:攻击目标距离div的距离加上攻击目标宽度(整个宽)

------------------------------------(向右时和向左时的判断几乎一样)---------------------------------------------

判断具体:如:我们将人物为:R        被攻击目标为:G        宽为:k        左边距:z        右边距:r

接下来是代码

if(zyou==68){
                        var Gr=parseInt($(this).css("right"));/* 攻击目标距离#youx右边框的距离(这里用距离左,右的都可以) */
                        var Grk=(Gwr+parseInt($(this).css("width")))/* 攻击目标距离#youx边框的距离+攻击目标当前的宽度(这里用距离左,右的都可以) */
                        /* 人物右边的攻击范围判定 */
                        var Rr=parseInt($("#youx>img:eq(0)").css("right"))/* 人物距离#youx右边框的距离 */
                        var Rrk=Math.abs(Rwur+(parseInt($("#youx>img:eq(0)").css("width"))/2)))


                        if(Gwr>=rwur && Gwr<=rwu || Gwr+parseInt($(this).css("width"))/2>=Rwur && Gwr+parseInt($(this).css("width"))/2<=Rwu || Gwkr>=Rwur && Gwkr<=Rwu){


                    }else if(zyou==65){
                            var Gz=parseInt($(this).css("left"));/* 怪物距离 */
                            var Gzk=(Glef+parseInt($(this).css("width"))/2)/* 怪物距离+怪物宽度2/1 */
                            
                            var Rz=parseInt($("#youx>img:eq(0)").css("left"))/* 人物的距离 */
                            var Rzk=Math.abs(parseInt(Rwul+parseInt($("#youx>img:eq(0)").css("width"))/2); /* 人物的距离+人物2/1的宽度 */


                            if(Glef>=Rwul && Glef<=Gwu || Gwkl>=Rwul && Gwkl<=Rwu || (Glef+parseInt($(this).css("width")))>=Rwul && (Glef+parseInt($(this).css("width")))<=Gwkl){   }

资源链接:https://download.csdn.net/download/weixin_56581836/19872474

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值