• cocos2d 学习笔记 2


    CCSpriteBatchNode的作用很像CCLayer,因为它本身并不显示在屏幕上。

    不过 你只能把CCSprite加入CCSpriteBatchNode。

    CCSpriteBatchNode 将一个图片文件名作为参数,使用这个参数的原因是所有被添加进 CCSpriteBatchNode的CCSprite节点都必须使用同一个图片文件。如果你没有在

    CCSprite中使用相同的图片,你将会在调试窗口中得到以下报错信息:

    SpriteBatches[13879:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSprite is not using the same texture id'

     

    一个通常会犯的致命错误 Sprite01项目展示了一个新的Objective-C开发者通常会犯的错误。你很容易犯 这个错误,但是又很难找到它。请查看一下列表6-2中的代码,你能看到哪里出 错了吗?

    列表6-2.一个通常在继承CCSprite(或者其它类)时会犯的致命错误

    ‐(id) init {
    
    if ((self = [super initWithFile:@"ship.png"]))
    
    {
    }
    return self;
    
    [self scheduleUpdate];
    
    } 

     

    上述代码的问题是:-(id)init这个方法是默认的初始化方法,它最终会被任何 特殊的初始化方法(比如initWithFile)所调用。因为上述代码又调用了

     

    [super initWithFile:..]这个特殊的初始化方法,最终产生了一个死循环。 解决的方法很简单。你只要像列表6-3所示那样把初始化方法换一个名字(只要

    不是-(id)init)就可以了。

     

  • 相关阅读:
    Java里的堆(heap)栈(stack)和方法区(method)
    SpringMVC 的 Controller 返回各种视图的处理方式
    Nginx Open File Cache
    HandlerInterceptor与MethodInterceptor
    Mysql的with rollup分组统计功能(5.1以上版本)
    idea中@data不生效
    java中? extends T 和? super T解析
    java8排序
    spring boot gateway自定义限流
    spring boot添加logging不能启动且不报错
  • 原文地址:https://www.cnblogs.com/gaoxiao228/p/2466335.html
Copyright © 2020-2023  润新知