예제 #1
0
  /** 开启游戏前的准备 */
  private void preGame() {

    // 1.回收容器
    chooseContainer.removeSelf();

    // 玩家已有植物容器进行缩放(包含所有已经选择的植物信息)
    choseContainer.setScale(0.65f);

    // 用已选择的植物填充容器,对容器做缩放操作
    for (ShowPlant item : chosePlantList) {
      CCSprite sprite = item.getDefaultImg();
      CGPoint pos =
          CGPoint.ccp(
              sprite.getPosition().x * 0.65f,
              sprite.getPosition().y + (winSize.getHeight() - sprite.getPosition().y) * 0.35f);
      sprite.setPosition(pos);
      sprite.setScale(0.65f);
      this.addChild(sprite);
    }

    // 2.移动地图
    CGPoint pos =
        CGPoint.ccp(
            gameMap.getContentSize().getWidth() / 2, gameMap.getContentSize().getHeight() / 2);
    CCMoveTo moveTo = CCMoveTo.action(1, pos);
    gameMap.runAction(moveTo);

    CCSequence sequence = CCSequence.actions(moveTo, CCCallFunc.action(this, "clearZombies"));
    // 3.回收僵尸
    gameMap.runAction(sequence);
  }
예제 #2
0
  @Override
  public boolean ccTouchesBegan(MotionEvent event) {

    if (GameController.getInstance().isStart()) {
      // 如果游戏开始,防止游戏点击事件冲突
      GameController.getInstance().handleTouch(event);
    } else {
      // 没有开始游戏
      if (CommonUtil.isClicke(event, this, choseContainer)) {
        boolean isDel = false; // 记录是否有删除条目
        // 点击的是已选容器
        for (ShowPlant plant : chosePlantList) {
          if (CommonUtil.isClicke(event, this, plant.getDefaultImg())) {
            CCMoveTo moveTo = CCMoveTo.action(0.3f, plant.getBgImg().getPosition());
            plant.getDefaultImg().runAction(moveTo);
            chosePlantList.remove(plant);
            isDel = true;
          }

          if (isDel) {
            // 有条目删除,后面的item依次向前顶一格
            plant
                .getDefaultImg()
                .setPosition(
                    plant.getDefaultImg().getPosition().x - 54,
                    plant.getDefaultImg().getPosition().y);
          }
        }
      } else {
        // 点击开始图片,开启游戏
        if (CommonUtil.isClicke(event, this, start)) {
          setIsTouchEnabled(false); // 不能点击屏幕
          preGame();

        } else {
          // 点击选择容器
          for (ShowPlant plant : showPlantList) {
            if (CommonUtil.isClicke(event, this, plant.getDefaultImg())
                && chosePlantList.size() < 5) {
              CGPoint pos = CGPoint.ccp(75 + chosePlantList.size() * 54, winSize.height - 65);
              CCMoveTo moveTo = CCMoveTo.action(0.3f, pos);
              plant.getDefaultImg().runAction(moveTo);
              chosePlantList.add(plant); // 已选集合
            }
          }
        }
      }
    }

    return super.ccTouchesBegan(event);
  }
예제 #3
0
  private void loadPlant() {
    // 展示用的植物信息
    showPlantList = new ArrayList<ShowPlant>();
    // 。。。。
    chosePlantList = new CopyOnWriteArrayList<ShowPlant>();
    for (int i = 1; i <= 9; i++) {

      // 传入ID时就初始化了所以的植物信息
      ShowPlant plant = new ShowPlant(i);
      CCSprite defaultImg = plant.getDefaultImg();
      CCSprite bgImg = plant.getBgImg();
      defaultImg.setPosition((i - 1) % row * 54 + 16, 175 - (i - 1) / row * 59);
      bgImg.setPosition((i - 1) % row * 54 + 16, 175 - (i - 1) / row * 59);
      chooseContainer.addChild(defaultImg);
      chooseContainer.addChild(bgImg);
      showPlantList.add(plant);
    }

    setIsTouchEnabled(true);
  }