cocos 寻路 c++实现
来源:互联网 发布:ios手游源码 编辑:程序博客网 时间:2024/06/05 04:21
tagData* HelloWorld::xunlu(Vec2 start, Vec2 endP)
{
int i = 0;
while (open.size() != 0)
{
open.sort(comp);
tagData* tempStart = *open.begin();
open.pop_front();
close.push_back(tempStart);
list<tagData*> sur = surroundCaneach(tempStart->point, endP);
for (auto began = sur.begin(); began != sur.end(); began++)
{
if (exists(open, (*began)->point))
{
float pg = (*began)->prent == NULL ? 0 : (*began)->g;
float g = (*began)->g + pg;
if (g < (*began)->g)
{
(*began)->g = g;
(*began)->f = (*began)->g + (*began)->h;
(*began)->prent = tempStart;
}
}
else
{
float pg = (*began)->prent == NULL ? 0 : (*began)->g;
float g = (*began)->g + pg;
(*began)->g = g;
(*began)->h = fabs(endP.x - (*began)->point.x) + fabs(endP.y - (*began)->point.y);
(*began)->f = (*began)->g + (*began)->h;
(*began)->prent = tempStart;
open.push_back(*began);
}
}
for (auto began = open.begin(); began != open.end(); began++)
{
if (fabs((*began)->point.x - endP.x) < 8 && fabs((*began)->point.y - endP.y) < 8)
{
CCLOG("xunlu wanbi");
return *began;
}
}
i++;
CCLOG("%d", i);
}
return NULL;
}
{
int i = 0;
while (open.size() != 0)
{
open.sort(comp);
tagData* tempStart = *open.begin();
open.pop_front();
close.push_back(tempStart);
list<tagData*> sur = surroundCaneach(tempStart->point, endP);
for (auto began = sur.begin(); began != sur.end(); began++)
{
if (exists(open, (*began)->point))
{
float pg = (*began)->prent == NULL ? 0 : (*began)->g;
float g = (*began)->g + pg;
if (g < (*began)->g)
{
(*began)->g = g;
(*began)->f = (*began)->g + (*began)->h;
(*began)->prent = tempStart;
}
}
else
{
float pg = (*began)->prent == NULL ? 0 : (*began)->g;
float g = (*began)->g + pg;
(*began)->g = g;
(*began)->h = fabs(endP.x - (*began)->point.x) + fabs(endP.y - (*began)->point.y);
(*began)->f = (*began)->g + (*began)->h;
(*began)->prent = tempStart;
open.push_back(*began);
}
}
for (auto began = open.begin(); began != open.end(); began++)
{
if (fabs((*began)->point.x - endP.x) < 8 && fabs((*began)->point.y - endP.y) < 8)
{
CCLOG("xunlu wanbi");
return *began;
}
}
i++;
CCLOG("%d", i);
}
return NULL;
}
阅读全文
0 0
- cocos 寻路 c++实现
- cocos 寻路 lua实现
- Cocos Creator 实现js调用object-c
- Cocos缓存的实现
- COCOS抽奖转盘实现
- cocos -js 实现计算器功能
- cocos lua 实现热更新
- cocos背景滑动实现1
- Cocos Creator 实现摩天轮效果
- cocos 寻路, lua
- cocos
- Cocos
- cocos
- cocos
- cocos
- cocos
- Cocos游戏场景切换(C++)
- 备忘[cocos lua 绑定c方法] 3.10
- arm linux系统启动流程
- 数据类型2-C语言学习笔记5
- Jalangi2 中文API
- Java IO流之File文件类的使用
- 循环队列的相关操作
- cocos 寻路 c++实现
- 在Struts1.x中用actionForm实现 request.getParameterValues("")效果;
- File
- Spark学习笔记@第一个例子wordcount+Eclipse
- LeetCode【410】 Split Array Largest Sum
- Ubuntu 16.04 LTS安装Qt Creator
- mysql数据库相关学习
- ServerSelectionTimeoutError: localhost:27017: [Errno 10061]
- Android listView中 editText 的 addTextChangedListener 和 OnItemClickListener 监听