在Endless Runner 游戏中,做了一些atlas后,发现有个问题,当player跳跃起来的时候,发现他没有动画了,被默认的X图片代替。
原来的图像是这样的。

在增加了一些动画后,我的效果就成这样了。

这个不知道为何?
当时碰到这个问题,我去查看了我的player.h,而且去看了的一些提供action的一些方法,结果还是不对,最后发现这个动画是在初始化的时候遍历我们的atlas来提供的,所以去查了一下,终于找到了答案。
原因:
在我们的player sprite相关的类,player.m中,在我们初始化的时候,我们调用了一一个方法来初始换我们的动画效果。代码如下

- (void) setupAnimations
{
self.runFrames = [[NSMutableArray alloc]init];
SKTextureAtlas *runAtlas = [SKTextureAtlas atlasNamed:@"run"]; for (int i = ; i < [runAtlas.textureNames count]; i++){
NSString *tempName = [NSString stringWithFormat:@"run%.3d", i];
SKTexture *tempTexture = [runAtlas textureNamed:tempName];
if (tempTexture) {
[self.runFrames addObject:tempTexture];
}
} self.jumpFrames = [[NSMutableArray alloc] init];
SKTextureAtlas *jumpAtlas = [SKTextureAtlas atlasNamed:@"jump"];
for (int i = ; i < [runAtlas.textureNames count]; i++){
NSString *tempName = [NSString stringWithFormat:@"jump%.3d", i];
SKTexture *tempTexture = [jumpAtlas textureNamed:tempName];
if (tempTexture) {
[self.jumpFrames addObject:tempTexture];
}
}

错误就是在这里,我当时是拷贝的函数过去去修改,结果漏了这一个地方,这个地方应该改成jumpAtlas,因为这个方法需要遍历我们的atlas,我们错误的让他去遍历我们的run.atlas文件夹,然后去寻找jump001, jump002等,所以他是找不到相关的文件的,所以导致了会出现默认的那个X来代替我的sprite.

总结,在我们写代码时,可能会出现各种的问题,在差错时会花费我们大量的时间。所以
1) 在拷贝相类似的代码时,需要再三确认是否需要修改。
2) 在我们的游戏出现行为不对的时候,需要先去找到初始化动画的代码,从源头查起,才不会有所疏漏。

诡异的SpriteKit 游戏查错的更多相关文章

  1. 记一次Lua语言中死循环查错

    前言 如果在Lua语言中某一处死循环了!你特么的怎么去查出这特么的该死的循环到底在特么的哪里!!! 重现步骤 一打开技能界面,整个游戏就卡死不动了 开始排查 查看一下cpu占用率,unity占用60% ...

  2. 使用DBUnit框架数据库插入特殊字符失败的查错经历

    本文记录的是使用DBUnit测试框架进行数据库数据插入时,插入特殊字符失败的查错经历.希望能对向我这样的小白同学们在遇到类似问题时,能够有一些启发.背景:在写跟数据库交互模块的单元测试,数据库表中的e ...

  3. pdo的工作方式与查错

    pdo某些方法如prepare()会返回PDOStatement对象; 然后需要通过返回的PDOStatement对象的方法操作 当查错通过$pdo->errInfo()方法可能查不出错误信息 ...

  4. 查错 CH Round #57 - Story of the OI Class

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/查错 题解:刚开始看见立马以为是 ...

  5. Instruments的使用 逻辑查错,内存泄漏分析等工具集

    原创文章,转载请注明 XCode 开发后期,要对代码进行改进和优化,查内存泄漏是其中一项重要工作,今天下午偷了点时间,把前段时间的代码稍微整理了一下,顺带用了下这个工具,还真发现了些问题.这里记录一下 ...

  6. JS查错小工具-三生有幸【推荐】

    H5和CSS语言在开发者官网上都有在线查错工具,同样的,更加复杂的JavaScript也需要一个查错工具,(别指望DreamWeaver了,debug功能做的太垃圾,还不如Firefox自带的强..) ...

  7. 笔记:php有那几种错误提示和查错方法

    php有哪几种错误提示 1.notice : 注意 2.waring : 警告 3.error : 错误 PHP中都有哪几种查错方法? 1.语法检查--php配置文件里,把错误显示选项都打开或者代码开 ...

  8. appium 查错

    很高兴最近论坛用appium的人多了不少,但也有不少由于不了解appium导致出现错误后不知道从何下手.这里根据我的个人经验给出一个简单的查错指南,不保证能解决所有错误,但至少让你知道你应该朝哪个方向 ...

  9. Java 游戏报错 看不懂求教

    Java 飞机小游戏 报错 看不懂求救 at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.EventQueue.dispat ...

随机推荐

  1. iOS字体 UIFont 字体名字大全

    打印所有的字体 NSArray *familyNames = [UIFont familyNames];//所有的家族名称 for(NSString *familyName in familyName ...

  2. Swift中的协议

    协议: 1.Swift协议用于定义多个类型应该遵守的规范 2.协议定义了一种规范, 不提供任何实现 3.协议统一了属性名, 方法, 下标, 但是协议并不提供任何实现 4.语法格式: [修饰符] pro ...

  3. hdu5398 GCD Tree(lct)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud GCD Tree Time Limit: 5000/2500 MS (Java/O ...

  4. 【转】C++:MessageBox的常见用法

    一    函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口 ...

  5. javascript学习教程之---如何从一个tab切换到banner幻灯片的转换2

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. pyzmq简单的在线聊天室

    #encoding=utf-8#客户端 import zmq c = zmq.Context() s = c.socket(zmq.REQ) s.connect('tcp://127.0.0.1:10 ...

  7. python比较两个列表

    两个列表,随机产生4个不相等的数,计算一下,相同位置上的元素相等的个数,用k1表示. b列表中的元素在a列表中,但位置不相同,有多少个,用k2表示. 例如: a=[0, 4, 7, 3]b=[7, 1 ...

  8. AFNetworking使用总结

    AFNetworking使用总结   关于AFNetworking使用总结 以及一些错误的解决办法. AD:WOT2015 互联网运维与开发者大会 热销抢票 AFNetworking使用总结 分享类型 ...

  9. scala 入门(1)

    大数据“火”的有段日子了,原来打算学习hadoop…… 后知道spark要比hadoop更牛, 故而转学spark.其原码为scala所写,为了更好的研究spark,故又开始学习scala. 将自己所 ...

  10. IOS 解析歌词lrc

    最近在捣鼓音乐播放器,过程中学到了一些东西,写下来分享一下,首先是歌词的解析 首先我们看看lrc(不贴维基了怕打不开 歌词文件一般是这样的格式 1.[分钟:秒.毫秒] 歌词 2. [分钟:秒] 歌词 ...