• Cocos2d 初学基本知识


    1. 纹理(Texture)

    游戏角色的图像文件在使用前必须解压缩,并转换成 iPhone 和 iPad 的 GPU 可以理解的 格式,同时要加载进 RAM(随机存储器),这样的图像称为纹理。GPU 原生支持一系列压缩 格式,如 PVRTC,其他格式必须存储为未压缩的图像数据。OpenGL ES 可以使用这些数据 在屏幕上绘制图像,所使用的 PNG 图像文件虽然在闪存中不占用多少空间,但是因为要解压缩,所以会在内存中占用更大的空间。

    2. 纹理图集(TextureAtlas)

    对于 iPhone 和 iPad 设备而言,内存是非常宝贵的。而且 iOS 设备的 GPU 使用共享显存, 而不是独立显存,换句话说,GPU 将使用主系统的内存来存储纹理图和几何图形。旧版 iOS 设备的内存是 128MB。

    让这种内存限制更捉襟见肘的是,旧版 iOS 设备中,图像填充到纹理中时,其长度和宽 度必须使用 2 的乘方。虽然 iPhone 3GS 和 iPhone 4、iPad 等设备支持非 2 的乘方大小的纹理 图,但在 Cocos2D 中,为了兼容所有设备,仍然使用 2 的乘方来填充纹理。当然,也可以在 ccConfig.h 文件中修改这一点。

    为了节省内存空间,并减少纹理中的浪费空间,将把这些纹理拼合成为一个大的纹理图, 称为纹理图集。纹理图集只是一个大的纹理图而已,其中包含所有的图像。想象有一大张纸, 然后把自己的照片都贴在上面,在需要时从纸上把照片剪下来。如果想把所有照片一次性给 别人,只需给这一大张纸就行,而不需一张张地递过去。OpenGL ES 处理图像也是类似,如 果使用纹理图集或精灵表单(Spritesheet)把所有图像一次性交给 OpenGL ES 来处理,比把单 个图像逐个交给 OpenGL ES 处理要高效。 

    CCSpriteFrame 精灵帧

    与我们之前了解的节点类不同,CCSpriteFrame 和 CCSpriteFrameCache 都直接继承自 Objective-C 中的 NSObject。

    CCSpriteFrame(精灵帧)中主要包括 CCTexture2D 纹理、矩形大小,用来表示一个精灵。 

  • 相关阅读:
    杨老师课堂_VBA学习教程之根据部门列创建工作表
    杨老师课堂_Java核心技术下之控制台模拟微博用户注册案例
    杨老师课堂_Java核心技术下之控制台模拟记事本案例
    杨校老师课堂之JavaScript右下角广告弹框教程
    JavaScript的数组知识案例之随机点名器
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    OLEDB和ODBC的区别
    教你认识主板上的主要芯片
    递归和迭代有什么区别
  • 原文地址:https://www.cnblogs.com/breezemist/p/4123195.html
Copyright © 2020-2023  润新知