cocos2dx 植物大战僵尸 21 塔基的更新
来源:互联网 发布:mysql安装教程 windows 编辑:程序博客网 时间:2024/05/21 08:01
在前面的帖子中,塔基生成有两种方法,一种是通过tmx的tile layer,图层进行创建,另一种是通过对象层进行创建,需要注意的是,僵尸的findTerrainOfZombieCollision,是查找和僵尸碰撞的塔基的,内部实现如下
Terrain*GameScene::findTerrainOfZombieCollision(ZombieBase*zombie){//获取当前僵尸所在的行auto row = zombie->getRow();auto dir = zombie->getZombieDir();auto r = zombie->getCollisionBoundingBox();const auto&terrains = m_pLevelLayer->getTerrainsOfRow(row);Terrain*terrain = nullptr;//地形从左向右遍历if (dir == ZombieDir::Left){for (auto it = terrains.begin();it != terrains.end();it++){auto t = *it;auto rect = t->getBoundingBox();if (r.intersectsRect(rect)){terrain = t;break;}}}//地形从右向左遍历else if (dir == ZombieDir::Right){for (auto it = terrains.end();it != terrains.begin();it--){auto t = *it;auto rect = t->getBoundingBox();if (r.intersectsRect(rect)){terrain = t;break;}}}return terrain;}这里需要保证塔基是排序好的,所以需要在LevelLayer中对塔基进行排序,排序方法类似于僵尸的排序。
bool LevelLayer::terrainComparisonLess(Terrain* n1, Terrain* n2){return n1->getPositionX() < n2->getPositionX();}在LevelLayer::init中添加
//获取地形TerrainMaker maker;maker.startParse(m_pTiledMap,SDL_CALLBACK_1(LevelLayer::makeTerrainCallback,this));//塔基加载完成for (auto it = m_terrains.begin();it != m_terrains.end();it++){auto & terrains = it->second;sort(terrains.begin(),terrains.end(),terrainComparisonLess);}即使用排序算法,这个需要注意。
阅读全文
0 0
- cocos2dx 植物大战僵尸 21 塔基的更新
- cocos2dx 植物大战僵尸 5 塔基Terrain的更新
- cocos2dx 植物大战僵尸 8 植物类和向日葵的小更新
- cocos2dx 植物大战僵尸 11 场景自带的植物
- cocos2dx 植物大战僵尸 13 僵尸的产生
- cocos2dx 植物大战僵尸 14 僵尸的攻击
- cocos2dx 植物大战僵尸 6 植物层
- cocos2dx 植物大战僵尸 12 僵尸卡片
- cocos2dx 植物大战僵尸 17 路障僵尸
- cocos2dx 植物大战僵尸 19 读报僵尸
- cocos2dx 植物大战僵尸 23 撑杆僵尸
- cocos2dx 植物大战僵尸 10 铲子的实现
- cocos2dx 植物大战僵尸 15 豌豆射手的实现
- cocos2dx 植物大战僵尸 3 卡片
- cocos2dx 植物大战僵尸 4 太阳
- cocos2dx 植物大战僵尸 18 土豆雷
- cocos2dx 植物大战僵尸 20 卷心菜投手
- cocos2dx 植物大战僵尸 9 容器植物类
- 数组中只出现一次的数字
- 基于FPGA的VGA彩条发生器
- jquery 监听页面是否发生了变化
- TT-2014 研发笔试题
- 【Ionic】堆叠标签
- cocos2dx 植物大战僵尸 21 塔基的更新
- okhttp使用https忽略证书验证
- Apache 服务器下载及安装
- 极光推送集成步骤及注意事项
- android sqlite 一次创建多个表
- C/C++UDP套接字之一般流程
- 91-95.c个人练习。
- USACO之Prime Cryptarithm
- Vue jquery.masonry 滑动自动加载 瀑布流