大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
首先在CatMazeV3中新建CatSprite类,继承于Sprite.其中CatSprite.h文件如下所示:
#import "CCSprite.h"
@class MainScene;
@interface CatSprite : CCSprite
@property (nonatomic,assign,readonly) NSInteger numBones;
-(id)initWithMainScene:(MainScene*)mainScene;
-(void)moveToward:(CGPoint)targetLocation;
-(void)moveTowardOneTile:(CGPoint)location;
@end
和原代码不同的是我将很多实例变量放到了实现m文件中去,所以感觉清爽了不少.同时原来numBones属性在新的Xcode代码中,也不需要再次重新合成了(synthesize).
再看CatSprite.m文件的内容,先是实例变量声明:
@implementation CatSprite{
MainScene *_mainScene;
CCAnimation *_facingForwardAnimation;
CCAnimation *_facingBackAnimation;
CCAnimation *_facingLeftAnimation;
CCAnimation *_facingRightAnimation;
CCAnimation *_curAnimation;
CCActionMoveTo *_move;
CCActionAnimate *_curAnimate;
}
注意原来的CCMoveTo和CCAnimate类现在已经不存在了,遂替换为如上所示新的类.
接下来是一些帮助方法和导出方法,没有什么大的改动:
-(id)initWithMainScene:(MainScene *)mainScene{
self = [super initWithImageNamed:@"cat_forward_1.png"];
if (self) {
_mainScene = mainScene;
_facingForwardAnimation = [self createCatAnimation:@"forward"];
_facingBackAnimation = [self createCatAnimation:@"back"];
_facingLeftAnimation = [self createCatAnimation:@"left"];
_facingRightAnimation = [self createCatAnimation:@"right"];
}
return self;
}
-(void)runAnimation:(CCAnimation*)animation{
if (_curAnimation == animation) {
return;
}
_curAnimation = animation;
if (_curAnimate) {
[self stopAction:_curAnimate];
}
_curAnimate = [CCActionRepeatForever actionWithAction:
[CCActionAnimate actionWithAnimation:animation]];
[self runAction:_curAnimate];
}
-(CCAnimation*)createCatAnimation:(NSString*)animType{
CCAnimation *animation = [CCAnimation animation];
CCSpriteFrameCache *sfCache = [CCSpriteFrameCache sharedSpriteFrameCache];
for (int i = 1; i <= 2; ++i) {
[animation addSpriteFrame:[sfCache spriteFrameByName:[NSString stringWithFormat:
@"cat_%@_%d.png",animType,i]]];
}
animation.delayPerUnit = 0.2;
return animation;
}
注意原来的-(id)initWithLayer:(HelloWorldLayer *)layer方法名称完全改了,因为Layer在v3.4中整个被丢弃了,大家可以看到我写的新的实现,和原来的差不多.
其他的方法中,只是实例变量名和类名发生的变化.我们将在下一篇看如何尝试转换最复杂的moveToward方法.
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)的更多相关文章
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 首先说一下为什么要转换,这是为了后面的A*寻路算法做准备.由于在 ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在打开MainScene.m文件,首先设置实例变量: @imp ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 回到Xcode中,新建一个EndLayer类,继承于CCNode ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode中打开MainScene.h文件,在接口中添加2个方 ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(五)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了暂时不影响原来的cat移动方法,我们在CatSprite.m ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 下面看一下CatSprite中最复杂的moveToward方法, ...
-
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(七)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 打开SpriteBuilder,在文件视图中新建一个文件夹Fon ...
-
【翻译】Selenium IDE v1.0.11 支持转换格式吗?
原文: http://blog.reallysimplethoughts.com/2011/06/10/does-selenium-ide-v1-0-11-support-changing-forma ...
-
最新:百度春节抢百万游戏--汤圆向前冲--辅助工具v1.0.0.2
https://www.cnblogs.com/Charltsing/p/ADBJumpTY.html 联系QQ:564955427 本程序为Windows版,不要在手机里面打开. 汤圆向前冲辅助工具 ...
随机推荐
-
json和pickle
Pickle序列化 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 python的pic ...
-
Twain头文件
#ifndef TWAIN#define TWAIN /************************************************************************ ...
-
Android sdk manager不能更新下载缓慢的解决方法
通常情况下,下载Android SDK需要连接谷歌的服务器进行下载,由于国内水深火热的网络,速度基本为0.好在国内也有一个更新的镜像地址.本文章介绍如何在不FQ的情况下,使用国内镜像地址,更新andr ...
-
Castle扩展Ibatis.Net
使用Castle扩展Ibatis.Net,面向接口编程-更优雅的代码 使用Ibatis.Net做项目半年了,甚是喜欢,感觉确实是个简单.轻巧的O/R Mapping框架,特别是将Sql配置在Xml文件 ...
-
S3C2440之IIC裸机驱动
花了两天的时间终于把这个搞定了,其实I2C的原理还是比较简单的,只是几个细节性的东西还是需要特别的注意,主要是需要注意一下几点: 1.rIICCON &= ~0x10; 清中断必须要在rIIC ...
-
checkbox和radio元素的样式设置(简易版)
html代码 //html <div> <p style="font-size:18px;margin-top:30px;color:rgba(0,0,0,0.44)&qu ...
-
thinkphp学习,蛋疼啊~新公司要弄这个。。。
common/function.php 看里面函数大全,啥玩意都有 Tpl中的是模板文件,action中是控制类,Model中有action用到的一些东西,例: class IndexAction e ...
-
ORACLE 查看CPU使用率最高的语句及一些性能查询语句
select * from (select sql_text,sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=1 ...
-
jconsole监控tomcat
一.专业术语 GC垃圾回收机制:当需要分配的内存空间不再使用的时候,JVM将调用垃圾回收机制来回收内存空间. JMX(Java Management Extensions,即Java管理扩展)是一个为 ...
-
[转载][QT][SQL]sq]学习记录1_模糊搜索
转载自:sql学习网站: http://www.w3school.com.cn/sql/index.asp 用于模糊搜索数据库的数据 语句:http://www.w3school.com.cn/sql ...