如何在Cocos2D游戏中实现A*寻路算法(三)
来源:互联网 发布:ios看电视直播软件 编辑:程序博客网 时间:2024/04/28 01:17
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!
创建开放和闭合列表
接下来我们将使用2个NSMutableArray来跟踪保存我们的开放和闭合列表.
你可能奇怪为什么不用NSMutableSet代替.好吧,这里有2个原因:
- NSMutableSet不是有序的,但是我们想要列表按照F值来排序以便快速查找.
- NSMutableSet并不会调用我们在ShortestPathStep类中的isEqual方法去测试是否2个元素是相同的(但是我们需要它这么做).
让我们在CatSprite.h中添加这些数组的定义:
@interface CatSprite : CCSprite { //...@private NSMutableArray *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 initWithLayerself.spOpenSteps = nil;self.spClosedSteps = nil;//Add dealloc method to CatSprite- (void)dealloc{ [spOpenSteps release]; spOpenSteps = nil; [spClosedSteps release]; spClosedSteps = nil; [super dealloc];}
注意:由于原文写作时间比较早,其中一些实例变量声明的方式以及销毁时的处理现在已经不需要了,你可以在阅读本系列博文中的代码时将这一条记在心中 ;) 猫猪注.
0 0
- 如何在Cocos2D游戏中实现A*寻路算法(三)
- 如何在Cocos2D游戏中实现A*寻路算法(一)
- 如何在Cocos2D游戏中实现A*寻路算法(二)
- 如何在Cocos2D游戏中实现A*寻路算法(四)
- 如何在Cocos2D游戏中实现A*寻路算法(五)
- 如何在Cocos2D游戏中实现A*寻路算法(六)
- 如何在Cocos2D游戏中实现A*寻路算法(七)
- 如何在Cocos2D游戏中实现A*寻路算法(八)
- 如何在使用Cocos2D中实现A星(A*)寻路算法
- IOS 如何在使用Cocos2D中实现A星(A*)寻路算法
- cocos2dx游戏中A*寻路算法的实现
- 如何使用Cocos2D实现A星寻路算法
- 游戏寻路算法A*的实现
- Cocos2d-x 寻路算法之三 A Star
- 游戏中常用的寻路算法的分享(3):A*算法的实现
- A星算法(游戏寻路算法)的C++实现
- 《C++游戏开发》十七 游戏中的寻路算法(三):A*算法原理
- 【IOS】如何在cocos2d 游戏中添加 移动广告
- HDU1039
- 【Leetcode】Flatten Binary Tree to Linked List
- Oracle并行详解
- 【ZJOI2015】【BZOJ3926】诸神眷顾的幻想乡
- HDU2639 01背包的第K最优决策
- 如何在Cocos2D游戏中实现A*寻路算法(三)
- 栈溢出实践
- opencv 报错:fatal error C1083: 无法打开包括文件: “stdafx.h”: No such file or directory
- Ubuntu 14.04 安装Virtualbox No suitable module for running kernel found
- Qt Qt4#include <QtGui>包含常用的头文件在Qt5中无效
- 虚拟地址、逻辑地址、线性地址、物理地址
- 一个用于部署应用的ant脚本
- ibatis缓存的设置使用
- java AES对称加解密