Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(三)
2015-11-21 10:56
567 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
下面看一下CatSprite中最复杂的moveToward方法,我们一开始只是想要确保cat在屏幕上正确显示出来,动画正确播放出来,所以可以先不管与地图碰撞检测的问题.于是简化到如下代码:
-(void)moveToward:(CGPoint)targetLocation{ CGPoint diff = ccpSub(targetLocation, self.position); if (fabsf(diff.x) > fabsf(diff.y)) { if (diff.x > 0) { [self runAnimation:_facingRightAnimation]; } else { [self runAnimation:_facingLeftAnimation]; } } else { if (diff.y > 0) { [self runAnimation:_facingBackAnimation]; } else { [self runAnimation:_facingForwardAnimation]; } } CGFloat distance = ccpDistance(targetLocation, self.position); CGFloat speed = 100; CGFloat durationTime = distance/speed; if (_move) { [self stopAction:_move]; } _move = [CCActionMoveTo actionWithDuration:durationTime position:targetLocation]; [self runAction:_move]; }
这时要在CatSprite中新增一个_move的实例方法如下:
CCActionMoveTo *_move;
那么CatSprite类基本转换好了,为了尽快测试效果,我们需要将MainScene类中的相关代码搭建好.
打开MainScene.h文件,修改如下:
@interface MainScene : CCNode -(BOOL)isWallAtTileCoord:(CGPoint)tileCoord; -(BOOL)isBoneAtTileCoord:(CGPoint)tileCoord; -(BOOL)isDogAtTileCoord:(CGPoint)tileCoord; -(BOOL)isExitAtTileCoord:(CGPoint)tileCoord; -(CGPoint)tileCoordForPosition:(CGPoint)position; -(CGPoint)positionForTileCoord:(CGPoint)tileCoord; -(void)removeObjectAtTileCoord:(CGPoint)tileCoord; @end
这里的MainScene类对应着原代码中的HelloWorldLayer类.我也将实例变量的什么放到了实现文件中,所以头文件里看的比较简洁.这里省略了与cat移动无关的方法,比如显示输赢效果的winGame和loseGame方法等,这写在以后在补上,目前最重要的是看cat能不能在屏幕上正确跑起来.
相关文章推荐
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(三)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)
- cocos2dx 3.6 关于加载游戏页面的方法
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(一)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(一)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(一)
- cocos2dx android 实现应用重启
- Cocos2d-x 3.X里的坑(1)——标签菜单项MenuItemLabel和精灵菜单项MenuItemSprite回调不响应
- cocos2dx lua 加密
- cocos2dx lua 热更新
- cocos2d-x v3.9 与ActionInterval的孩子们之间的对话(1)
- 如何在Cocos2D 1.0 中掩饰一个精灵(六)
- 如何在Cocos2D 1.0 中掩饰一个精灵(六)
- 如何在Cocos2D 1.0 中掩饰一个精灵(六)
- 如何在Cocos2D 1.0 中掩饰一个精灵(五)
- 如何在Cocos2D 1.0 中掩饰一个精灵(五)
- 如何在Cocos2D 1.0 中掩饰一个精灵(五)
- cocos2dx 笔记