cocos2D(四)---- CCSprite
在介紹CCSprite之前,先要理解游戲開發中的一個核心概念:精靈。精靈也稱為游戲對象,它能夠用來表示游戲中的不論什么物體,比方敵人、子彈、甚至是一個背景圖片、一段文字。CCSprite能夠說是在cocos2d中最經常使用的一個類,能夠稱之為"精靈類",它能夠以圖片的形式將精靈顯示到屏幕上。
創建精靈
在談怎么創建一個精靈之前,先了解下游戲開發中還有一個核心概念:紋理。紋理事實上就是用來描寫敘述物體表面細節的圖形,也稱為紋理貼圖,把紋理依照特定的方式映射到物體表面上的時候能使物體看上去更加真實。我們將紋理映射到屏幕上就可以顯示相應的圖形。
1.創建精靈最簡單的方式就是給精靈指定一張圖片文件,cocos2d會利用這張圖片生成紋理對象(CCTexture2D)并載入到紋理緩存庫中(CCTextureCache),終于由精靈來控制紋理顯示在屏幕中的位置。??
執行效果:
其它經常使用設置
1> 設置精靈的不透明度
[java]?view plaincopy
opacity的取值范圍是0-255,0代表全然透明,255代表全然不透明
2> 給精靈著色
[java]?view plaincopy
3> 水平鏡像
[java]?view plaincopy
4> 垂直鏡像
[java]?view plaincopy
如果flipX和flipY一起使用
[java]?view plaincopy
2.能夠指定一個范圍僅僅載入圖片的某個矩形區域
這張圖片的原大小是100x100的
[java]?view plaincopy
僅僅載入了圖片左上角50x50的區域
3.能夠直接傳入一個紋理對象(CCTexture2D)
[java]?view plaincopy
CCTextureCache是專門用來緩存CCTexture2D對象的,它內部有個NSMutableDictionary *textures_字典,key是圖片名稱,vale是CCTexture2D對象。當調用它的addImage:方法加入圖片時,會先依據圖片名查找字典中是否存在相應的CCTexture2D對象,假設有就直接返回;假設沒有,就會依據圖片名稱去載入CCTexture2D對象,載入完成后將CCTexture2D對象放入字典中。
或者指定一個范圍僅僅載入圖片的某個矩形區域
[java]?view plaincopy
紋理的大小
眼下位置,iOS設備僅僅支持尺寸為"2的n次冪"的紋理,因此每張紋理的寬和高都僅僅可能為:2、4、8、16、32、64、128、256、512、1024和2048像素。也就是說紋理的寬高僅僅能是上述數值的組合,比方2x4,32x32,512x64等。
我們在制作紋理圖片的時候,最好圖片的尺寸都符合上述要求,不然壞處多多。
比方,有一張260x260像素的32位色圖,它本應該在內存中大概占270KB(260 x 260 x 32 / 8 = 270400B),但受紋理尺寸的限制,紋理的尺寸必須是2的n次冪,系統會自己主動生成一張最接近原圖尺寸的(但不能偏小,要能包括原圖像)、寬高都為2的n次冪的紋理,于是系統將生成一張512x512像素的紋理,所以終于會占用1MB的內存(512 x 512 x 32 / 8 = 1048576B),實際占用的內存居然是所需內存的4倍。解決的方法就是將這張260x260像素的圖像改為256x256像素,系統也將生成256x256像素的紋理。
HD和SD圖像
iOS的像素分別率隨設備的硬件而變化,iPhone第一次引入了高分辨率的視網膜屏幕(Retina顯示屏幕),像素分辨率為960x640,剛好是前一代iPod和iPhone像素分辨率(480x320)的兩倍。通常會將Retina顯示屏幕使用的圖像稱為高分辨率(HD)圖像,非Retina顯示屏幕使用的圖像稱為標準分辨率(SD)圖像。
以下來看看各代iOS設備的規格參數
| 設備 | 最大紋理尺寸 | 像素分辨率 | 坐標系 |
| iPhone 2G\3G\3GS、iPod Touch | 1024x1024 | 480x320 | 480x320 |
| iPhone4、iPhone4s | 2048x2048 | 960x640 | 480x320 |
| iPad、iPad2 | 2048x2048 | 1024x768 | 1024x768 |
假設游戲執行在具有Retina顯示屏幕的設備上,cocos2d會先嘗試載入帶有-hd后綴的圖片。比方你在具有Retina顯示屏幕的設備上載入ball.png,它會首先嘗試載入ball-hd.png,假設該文件不存在或者非Retina顯示屏幕,將載入標準分辨率(SD)圖片ball.png。因此為了更好地支持Retina顯示屏,通常會使用HD分辨率創建全部圖片,然后把寬高都縮小50%,另存為SD分辨率圖片。
只是,要想cocos2d會自己主動載入HD圖片,還須要開啟對Retina顯示屏幕的支持
[java]?view plaincopy
CCLabelTTF
CCLabelTTF繼承自CCSprite,能夠用來顯示文本
[java]?view plaincopy
能夠通過color屬性設置文字顏色
[java]?view plaincopy
原文地址:http://blog.csdn.net/q199109106q/article/details/8603163 感謝作者~!
轉載于:https://www.cnblogs.com/blfshiye/p/4353074.html
總結
以上是生活随笔為你收集整理的cocos2D(四)---- CCSprite的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人资源收集备忘录
- 下一篇: JAVA之关于This的用法