cocox3.15.12.zip
cocox3.15.12.zip
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-30 05:02 cocox3.15.1ase
文件 1111 2017-07-04 12:12 cocox3.15.1aseasert.h
文件 11015 2017-07-04 12:12 cocox3.15.1aseAstar.cpp
文件 1330 2017-07-04 12:12 cocox3.15.1aseAstar.h
文件 375 2017-07-04 12:12 cocox3.15.1asecfg.cpp
文件 3176 2017-07-04 12:12 cocox3.15.1asecfg.h
文件 280 2017-07-04 12:12 cocox3.15.1asecppstruct.cpp
文件 431 2017-07-04 12:12 cocox3.15.1asecppstruct.h
文件 6608 2017-07-04 12:12 cocox3.15.1aseefolder.cpp
文件 155 2017-07-04 12:12 cocox3.15.1aseefolder.h
文件 817 2017-07-04 12:12 cocox3.15.1aselogic.cpp
文件 146 2017-07-04 12:12 cocox3.15.1aselogic.h
文件 3924 2017-07-04 12:12 cocox3.15.1asestringutils.cpp
文件 1274 2017-07-04 12:12 cocox3.15.1asestringutils.h
文件 1308 2017-07-04 12:12 cocox3.15.1ase emplate.h
文件 372809 2017-07-04 12:12 cocox3.15.1aseutf.cpp
文件 420 2017-07-04 12:12 cocox3.15.1aseutf.h
目录 0 2017-09-30 05:02 cocox3.15.1coco
文件 1871 2017-07-04 12:12 cocox3.15.1cococcc.h
文件 1193 2017-07-04 12:12 cocox3.15.1cococfg2.cpp
文件 463 2017-07-04 12:12 cocox3.15.1cococfg2.h
文件 10462 2017-09-30 03:26 cocox3.15.1cocococoMacro.h
目录 0 2017-09-30 05:02 cocox3.15.1cocos
目录 0 2017-09-30 05:02 cocox3.15.1cocos2d
文件 7692 2017-05-04 09:54 cocox3.15.1cocos2dCCAction.cpp
文件 13793 2017-09-29 17:33 cocox3.15.1cocos2dCCAction.h
文件 6529 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCamera.cpp
文件 5057 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCamera.h
文件 13955 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCatmullRom.cpp
文件 9878 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCatmullRom.h
文件 10009 2017-09-30 04:08 cocox3.15.1cocos2dCCActionEase.cpp
............此处省略739个文件信息
#include “Astar.h“
struct Astar::AstartNode
{
//此节点在堆中的位置
int iHeapPosition = -1;
int iG = -1;
int iH = -1;
int iF = -1;
//检测是否可以通过
int iColor = -1;
//检测是否在开启列表中
int isOpen = 0;
Astar::VecInt father;
int getF(){ return iH + iG; }
};
void Astar::cHeap::removeFront(Astar::AstartNode**g_Map)
{
if (vecs.size() == 0)
return;
g_Map[vecs[vecs.size() - 1].x][vecs[vecs.size() - 1].y].iHeapPosition = 0;
g_Map[vecs[0].x][vecs[0].y].iHeapPosition = -1;
vecs[0] = vecs[vecs.size() - 1]; //用最后一个元素把第一个元素覆盖掉,即为删除
vecs.pop_back(); //删除容器尾巴元素
int currentIndex = 0;
while (currentIndex < vecs.size()) //把新的堆首元素放在堆中适当的位置
{
int leftChildIndex = 2 * currentIndex + 1;
int rightChildIndex = 2 * currentIndex + 2;
//已经到最底层,结束
if (rightChildIndex > vecs.size())
break;
int minIndex = leftChildIndex;
//有两个孩子,找出两个孩子节点中F值最低的元素
if (rightChildIndex g_Map[vecs[rightChildIndex].x][vecs[rightChildIndex].y].getF()))
{
minIndex = rightChildIndex;
}
//如果当前节点的F值 大于 他孩子节点的F值,则交换
if (g_Map[vecs[currentIndex].x][vecs[currentIndex].y].getF() > g_Map[vecs[minIndex].x][vecs[minIndex].y].getF())
{
VecInt temp = vecs[minIndex];
vecs[minIndex] = vecs[currentIndex];
vecs[currentIndex] = temp;
//同步保存地图中该坐标在堆中的最新位置
g_Map[vecs[currentIndex].x][vecs[currentIndex].y].iHeapPosition = currentIndex;
g_Map[vecs[minIndex].x][vecs[minIndex].y].iHeapPosition = minIndex;
currentIndex = minIndex;
}
else
{
break;
}
}
}
void Astar::cHeap::push_back(const VecInt& element Astar::AstartNode**g_Map)
{
vecs.push_back(element);//把新节点添加到堆的末尾
int currentIndex = vecs.size() - 1;
g_Map[vecs[currentIndex].x][vecs[currentIndex].y].iHeapPosition = currentIndex; //保存该坐标在堆中的位置
while (currentIndex > 0) //不断的与他的父节点比较,直到该新节点的F值大于他的父节点的F值为止 或者 该新节点到了堆首
{
int parentIndex = (currentIndex - 1) / 2;
if (g_Map[vecs[currentIndex].x][vecs[currentIndex].y].getF() < g_Map[vecs[parentIndex].x][vecs[parentIndex].y].getF())
{
VecInt temp = vecs[currentIndex];
vecs[currentIndex] = vecs[parentIndex];
vecs[parentIndex] = temp;
//同步保存地图中该坐标在堆中的最新位置
g_Map[vecs[currentIndex].x][vecs[currentIndex].y].iHeapPosition = currentIndex;
g_Map[vecs[parentIndex].x][vecs[parentIndex].y].iHeapPosition = parentIndex;
currentIndex = parentIndex;
continue;
}
else
{
break;
}
}
}
void Astar::cHeap::newHeap(int position Astar::AstartNode**g_Map)
{
int currentIndex = position;
int parentIndex;
//while (currentIndex > 0) //如果该元素新的F值比他的父节点的F值小,交换
//{
// parentIndex = (currentIndex - 1) / 2;
// if (g_Map[v[currentIndex].sx][v[currentIndex].sy].getF() < g_Map[v[parentIndex].sx][v[parentIndex].sy].getF())
// {
// Coordinate temp = v[currentIndex];
// v[currentIndex] = v[parentIndex];
// v[parentIndex] = temp;
// g_Map[v[
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-30 05:02 cocox3.15.1a
文件 1111 2017-07-04 12:12 cocox3.15.1a
文件 11015 2017-07-04 12:12 cocox3.15.1a
文件 1330 2017-07-04 12:12 cocox3.15.1a
文件 375 2017-07-04 12:12 cocox3.15.1a
文件 3176 2017-07-04 12:12 cocox3.15.1a
文件 280 2017-07-04 12:12 cocox3.15.1a
文件 431 2017-07-04 12:12 cocox3.15.1a
文件 6608 2017-07-04 12:12 cocox3.15.1a
文件 155 2017-07-04 12:12 cocox3.15.1a
文件 817 2017-07-04 12:12 cocox3.15.1a
文件 146 2017-07-04 12:12 cocox3.15.1a
文件 3924 2017-07-04 12:12 cocox3.15.1a
文件 1274 2017-07-04 12:12 cocox3.15.1a
文件 1308 2017-07-04 12:12 cocox3.15.1a
文件 372809 2017-07-04 12:12 cocox3.15.1a
文件 420 2017-07-04 12:12 cocox3.15.1a
目录 0 2017-09-30 05:02 cocox3.15.1coco
文件 1871 2017-07-04 12:12 cocox3.15.1cococcc.h
文件 1193 2017-07-04 12:12 cocox3.15.1cococfg2.cpp
文件 463 2017-07-04 12:12 cocox3.15.1cococfg2.h
文件 10462 2017-09-30 03:26 cocox3.15.1cocococoMacro.h
目录 0 2017-09-30 05:02 cocox3.15.1cocos
目录 0 2017-09-30 05:02 cocox3.15.1cocos2d
文件 7692 2017-05-04 09:54 cocox3.15.1cocos2dCCAction.cpp
文件 13793 2017-09-29 17:33 cocox3.15.1cocos2dCCAction.h
文件 6529 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCamera.cpp
文件 5057 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCamera.h
文件 13955 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCatmullRom.cpp
文件 9878 2017-05-04 09:54 cocox3.15.1cocos2dCCActionCatmullRom.h
文件 10009 2017-09-30 04:08 cocox3.15.1cocos2dCCActionEase.cpp
............此处省略739个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)