飞机游戏中子弹与飞机的移动与边界源码

上回写了在场景中显示飞机与子弹现在再来把他们的移动和边界写下

 飞机的移动:首先创建一个监听事件,看飞机是否被拖动,再写一个被拖动之后的方法。方法里面先创建一个target继承飞机的所有属性,在给target设置

一个与飞机位置相等的矩形,再判断你鼠标点击的位置是否在矩形里面,再给飞机写一个移动的方法,如果给鼠标拖动,飞机就会随着鼠标的移动而移动

设置边界:设置边界的算法

if (target->getPositionX() + touch->getDelta().x >= visibleSize.width - target->getContentSize().width / 2){
   target->setPositionX(visibleSize.width - target->getContentSize().width / 2);
  }
  else if (target->getPositionX() + touch->getDelta().x <= target->getContentSize().width / 2){
   target->setPositionX(target->getContentSize().width / 2);
  }
  else{
   target->setPositionX(target->getPositionX() + touch->getDelta().x);
  }

  if (target->getPositionY() + touch->getDelta().y >= visibleSize.height - target->getContentSize().height / 2){
   target->setPositionY(visibleSize.height - target->getContentSize().height / 2);
  }
  else if (target->getPositionY() + touch->getDelta().y <= target->getContentSize().height / 2){
   target->setPositionY(target->getContentSize().height / 2);
  }
  else{
   target->setPositionY(target->getPosition().y + touch->getDelta().y);
  }
 };

 

 子弹随着飞机的移动而移动:

首先创建一个飞机类:再进行判断,当飞机等于NULL的时候就new一个飞机,当飞机不为空就返回飞机。在创建一个子弹类,把返回的飞机当参数返回给子弹,在子弹的类里面把子弹发射的坐标变成飞机的坐标,这样就能实现随着飞机的移动,子弹的发射点也会跟着移动

 b->setPosition(Vec2(this->feiji->fun()->getPositionX(), this->feiji->fun()->getPositionY()+b->getContentSize().height)); //子弹的坐标
 auto bb = MoveTo::create(1, Point(this->feiji->fun()->getPositionX(), visibleSize.height + 100));  //子弹发射

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值