基于cocos2dx:塔防的直线穿透性攻击

这是这几天碰到的问题,直线穿透性持续攻击,在一条直线上只要有怪物经过,就受到伤害。最后发现如此答案:
if self.imageShoot:getRotation()<0 then
	self.shootTwo.rt = (self.imageShoot:getRotation() + 365) 
	self.shootTwo.rd = (self.imageShoot:getRotation() + 355) % 360;
else

	self.shootTwo.rt = (self.imageShoot:getRotation() + 5) % 360;
	self.shootTwo.rd = (self.imageShoot:getRotation() - 5) % 360;
end

for i,enemy in pairs(enemyList) do
      local  rM = (90 - 180 * cc.pToAngleSelf(cc.pSub(cc.p(enemy:getPosition()),cc.p( self:getPosition()))) / 3.1415926535) % 360;
          
      if (rM >=self.shootTwo.rd and rM <=self.shootTwo.rt) then
          local harmHP = self:getAttack()
          enemy:decCurrHP(harmHP)
     
      end
end

塔中心点与怪物中心点的向量和x轴的夹角(弧度l)与直线与x轴的夹角取攻击范围值比较,l在攻击范围则受到伤害。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值