zoukankan      html  css  js  c++  java
  • 关于Cocos2d-x中监听物体不超越边界的解决方案

    写一个监听器

    touchlistener->onTouchMoved = [this](Touch* pTouch, Event*) {

      auto delta = pTouch->getDelta();

      auto hero = (PlaneHero*)getChildByTag(HERO_TAG);

      auto oldpos = hero->getPosition(); //用来重置出界后的位置

      hero->setPosition(Vec2(hero->getPosition().x + delta.x, hero->getPosition().y + delta.y));


      //不能出界
      auto winSize = Director::getInstance()->getWinSize();
      if (hero->getPositionY() < hero->getContentSize().height / 2 || hero->getPositionY() > winSize.height - hero->getContentSize().height / 2
        || hero->getPositionX() < hero->getContentSize().width / 2 || hero->getPositionX() > winSize.width - hero->getContentSize().width / 2)
      {
        hero->setPosition(oldpos);
      }
    };
    _eventDispatcher->addEventListenerWithSceneGraphPriority(touchlistener, this);  //把监听器添加到事件分发器

  • 相关阅读:
    选择排序
    冒泡排序
    java多线程
    Java中的内存泄露的几种可能
    "==" 与 “equals”
    保证service不被杀死的方法
    反射、注解、依赖
    引导页
    适配:px与dp转换
    四 主要的几种 Web 服务器
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5763142.html
Copyright © 2011-2022 走看看