博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(三)
阅读量:7064 次
发布时间:2019-06-28

本文共 1621 字,大约阅读时间需要 5 分钟。

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! 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能不能在屏幕上正确跑起来.

你可能感兴趣的文章
移动端-必要知识
查看>>
Redis指令
查看>>
Date12
查看>>
HTTP协议09-响应首部字段
查看>>
【原创】MySQL新旧版本ORDER BY 处理方法
查看>>
Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
查看>>
linux shell单引号、双引号及无引号区别(考试题答案系列)
查看>>
625某电商网站数据库宕机故障解决实录(下)
查看>>
创业公司感悟录之十个提醒—作者李天平
查看>>
.NET Project Open Day(2011.11.13)
查看>>
centos 记录用户行为轨迹
查看>>
各角色眼中的性能测试
查看>>
Citrix XenDesktop 引发的学案(四)-与“您的虚拟桌面”之间的连接失败,状态(1030)...
查看>>
mysql-5.6的GTID复制的实现
查看>>
6421B Lab10 网络文件和打印服务的配置与故障排除
查看>>
快速安装配置zabbix_agent端
查看>>
DNS服务的配置与管理(5) 配置转发器
查看>>
AIP(Azure 信息保护)之一:启用与激活服务
查看>>
一步步学WebSocket(3)WebSocket协议格式
查看>>
linux更新内核
查看>>