大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

创建开放和闭合列表

接下来我们将使用2个NSMutableArray来跟踪保存我们的开放和闭合列表.

你可能奇怪为什么不用NSMutableSet代替.好吧,这里有2个原因:

  1. NSMutableSet不是有序的,但是我们想要列表按照F值来排序以便快速查找.
  2. NSMutableSet并不会调用我们在ShortestPathStep类中的isEqual方法去测试是否2个元素是相同的(但是我们需要它这么做).

让我们在CatSprite.h中添加这些数组的定义:

@interface CatSprite : CCSprite {//...@privateNSMutableArray *spOpenSteps;NSMutableArray *spClosedSteps;
}

然后在CatSprite.m中做出如下修改:

// Add to top of file
// Private properties and methods
@interface CatSprite ()
@property (nonatomic, retain) NSMutableArray *spOpenSteps;
@property (nonatomic, retain) NSMutableArray *spClosedSteps;
@end// Add after @implementation CatSprite
@synthesize spOpenSteps;
@synthesize spClosedSteps;// Add inside initWithLayer
self.spOpenSteps = nil;
self.spClosedSteps = nil;//Add dealloc method to CatSprite
- (void)dealloc
{[spOpenSteps release]; spOpenSteps = nil;[spClosedSteps release]; spClosedSteps = nil;[super dealloc];
}
注意:由于原文写作时间比较早,其中一些实例变量声明的方式以及销毁时的处理现在已
经不需要了,你可以在阅读本系列博文中的代码时将这一条记在心中 ;) 猫猪注.

如何在Cocos2D游戏中实现A*寻路算法(三)相关推荐

  1. 如何在Cocos2D游戏中实现A*寻路算法(二)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  2. 如何在Cocos2D游戏中实现A*寻路算法(五)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  3. 如何在Cocos2D游戏中实现A*寻路算法(七)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  4. 即时战略游戏中实用的寻路算法分享

    http://www.gameres.com/340777.html GameRes游资网授权发布,文 / 伍一峰 RTS中的寻路系统一般需要满足有以下几个条件: 1. 效率高,因为rts普遍地图大, ...

  5. 游戏中常用的寻路算法(6):地图表示

    在本系列文档大部分内容中,我都假设A*用于某种网格上,其中的"节点"是一个个网格的位置,"边"是从某个网格位置出发的各个方向.然而,A*可用于任意图形,不仅仅是 ...

  6. 【IOS】如何在cocos2d 游戏中添加 移动广告

    最近有需要在一款Cocos2d 游戏里面添加移动广告,大家都知道,现在有很多的移动广告平台,每个平台都有自己的SDK,每个SDK的方法,流程又都不一样,找来找去,找到了 果合移动广告. 它自己的网站上 ...

  7. 游戏中常用的寻路算法的分享(3):A*算法的实现

    概述 剥除代码,A* 算法非常简单.算法维护两个集合:OPEN 集和 CLOSED 集.OPEN 集包含待检测节点.初始状态,OPEN集仅包含一个元素:开始位置.CLOSED集包含已检测节点.初始状态 ...

  8. 游戏中常用的寻路算法的分享(4)处理移动中的障碍物

    一个寻路算法会计算出一条绕过静止障碍物的路径,但如果障碍物会移动呢?当一个单位移动到达某特定点时,原来的障碍物可能不在那点了,或者在那点上出现了新的障碍物.如果路线可以绕过典型的障碍物,那么只要使用单 ...

  9. 游戏中常用的寻路算法(5)预先计算好的路径的所用空间

    有时候,影响计算寻路路径的不是时间,而是计算路径所需的上百个单元格所占的空间.寻路是需要内存来运行寻路算法,还需要额外内存来存储寻到的路径.运行寻路算法(A*,开集或闭集)所需的临时空间经常会比存储这 ...

最新文章

  1. Struts2 自己定义下拉框标签Tag
  2. SQL-92标准 中文翻译——定义、记号和约定 (定义)
  3. zabbix mysql设置中文乱码_解决zabbix监控因php问题导致图形界面中文乱码方法
  4. C++ 文本文件的读取和写入
  5. 在线重定义生产环境大表分区的惨烈踩雷记录
  6. 电脑cpu和手机cpu的差距有多大?
  7. swoft使用redis
  8. python下载pywifi
  9. 英语测试听力材料软件,英语听力软件哪个好?来这里!
  10. 从敏思博客的倒闭事件看历史重现...
  11. 其实装修也是工程管理
  12. 软件测试 | 测试开发 | 黑盒测试方法论—场景法
  13. 魅族路由器(极速版)刷老毛子(padavad)固件-全网最详细教程
  14. git fatal: cannot lock ref ‘HEAD‘:unable to resolve reference‘refs/heads/main‘:reference broken
  15. 微软十五道面试题 答案
  16. HDFS 细粒度锁优化,FusionInsight MRS有妙招
  17. ubuntu 3D桌面搞定了
  18. 微服务网关Gateway实战
  19. Java中导出pdf文件,pdf工具类demo
  20. 用adb 安装(install) apk 的时候报错 “Failure [INSTALL_FAILED_INVALID_APK]“

热门文章

  1. 利用人工智能“解锁”世界音乐
  2. 我的媒体播放器——多媒体编程
  3. 发布一个练笔的 Android 阅读器,轻微仿91 Android 阅读器【后续将提供源码】
  4. suse 网卡 bond
  5. python之模块的导入和用户的交互格式化输出
  6. Android批量图片加载经典系列——使用LruCache、AsyncTask缓存并异步加载图片
  7. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)
  8. 【数据科学】什么是数据科学?
  9. 树莓派4B设置双网卡静态IP、网卡优先级、查看系统多少位
  10. latex参考文献,首字母大写