/** 开启游戏前的准备 */ 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); }
@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); }
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); }