網頁

2010年6月29日 星期二

iPhone-Cocos2d Animation Frame

iPhone-Cocos2d 動畫 (連續圖片播放)
Last Update: 2010/07/14 20:42


前置


環境:
XCode 3.2.2
Cocos2d 0.99.4

準備工作 :
Zwoptex (官網)
連續圖片


建立動畫資源檔案


以 Zwoptex 製作 .plist 及 .png
執行 Zwoptex => File => New
再將所有圖片全選, 拖曳到 Zwoptex 的視窗裡

點擊Untrim(不自動剪裁)
選擇適當大小
Layout -> Apply (自動排版)
儲存圖片(Texture, 建議png)
儲存描述檔 ( .plist, 格式為xml, 主要描述各圖檔座標)


把它們加到專案的 Resource 裡吧
加入後, 開啟 .plist -> Root -> Frame 可以看到原始圖檔名稱


接下來的一切動作都只在 init 函式裡


建立動畫來源


接著要建立 CCSpriteSheet 及 CCAnimation

我是以Cocos2d的範本建立專案
如果什麼都沒做就 Debug 的話應該會看到 Hello World
我們不需要這個
請將 init 函式的 if 區塊內容清空
加入 CCSpriteSheet 的 初始化, 看起來會像下面的程式碼

-(id) init
{
if( (self=[super init] )) {
CCSpriteSheet *ss = [CCSpriteSheet
spriteSheetWithFile:@"fox.png"];
}
return self;
}



緊接著 CCSpriteSheet
一樣在 if 區塊裡加入下面的程式碼, 將 CCAnimation 建立起來


[[CCSpriteFrameCache sharedSpriteFrameCache]
addSpriteFramesWithFile:@"fox.plist"];//Load plist.

NSMutableArray *animFrames = [NSMutableArray array];
for(int i = 1; i <= 10; ++i) {//for each frame.
[animFrames addObject:
[[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:
[NSString stringWithFormat:@"fox_%04d.png", i]]];
}
CCAnimation *anim = [CCAnimation
animationWithName:@"walk"
delay:0.1 frames:animFrames];

OK, 一行行說吧
先把 描述檔(.plist)載入

再將每個 Frame 取出並儲存(for)
其中的字串 @"fox_$04d.png"
是圖檔的名稱格式, 它會填入4個數字, 不足補零

最後我們有了圖檔的座標、大小和順序就可以建立動畫



連結你的動畫



CCAction *action = [CCRepeatForever actionWithAction:
[CCAnimate actionWithAnimation:anim restoreOriginalFrame:NO]];

CCSprite 要執行什麼動作都必需要依靠 CCAction 來操作
所以我們將 CCAnimation 與 CCAction 做個連結吧



CCSprite *sprite =[CCSprite
spriteWithSpriteFrameName:@"fox_0001.png"];

CGSize winSize = [CCDirector sharedDirector].winSize;
sprite.position = ccp(winSize.width/2, winSize.height/2);

這裡值得提的, 大概是 spriteWithSpriteFrameName
不再是用一般 Resource 的圖檔, 而是來自 Frame name



[sprite runAction:action];
[ss addChild:sprite];
[self addChild:ss];

sprite 要執行剛建好的動作(CCAction)
再將 sprite 加入 ss(CCSpriteSheet), 以連結圖檔
最後把 ss 加入當前場景即可

恭喜,執行吧!!

完整專案下載






2010年6月22日 星期二

Add reference library for iPhone

在 iPhone 專案裡, 加入參考library.

環境: XCode 3.2.2



流程



  • 創建靜態library

  • 創建iPhone專案

  • 加入靜態library

  • 同步編譯library

  • 標頭檔(.h)引入






創建靜態library



  • 1.1 開啟XCode => File => new Project

  • 1.2 選擇專案類型: library => Cocoa touch static library


  • 1.3 輸入 lib 名稱 (ex: MyLib)



創建iPhone專案



  • 2.1 開啟XCode => File => new Project

  • 2.2 選擇專案類型: Application => View-based Application (請依需求選擇)

  • 2.3 輸入專案名稱 (ex: MyApp)




加入靜態library




  • 3.1 拖曳 MyLib 到 MyApp (跨視窗)


  • 3.2 會彈出設定視窗, 取消勾選 "Copy Items ...", 並勾選下面的 "Add to targets" 裡的 MyApp, 點擊 "Add"


  • 3.3 在 MyApp 專案裡, 展開剛加入的library, 裡面有個 libMyLib.a, 拖曳到 Targets => MyApp => Link Binary With Libraries





同步編譯library


到此算是完成加入參考 lib 的動作, 但它不會自動重新編譯, 因此接下來把它加入相依性吧

  • 4.1 在 MyApp 專案裡, Targets => MyApp 上點擊右鍵 => Get Info => General => Direct Dependencies, 加入 MyLib




標頭檔(.h)引入



  • 5.1 在4.1的地方, 有個頁籤 "Build" => 搜尋 "Header Search Paths", 加入標頭檔所在路徑
    如果 2 個專案是放在同一個資料夾的話, 可以輸入 "${PROJECT_DIR}/../MyLib"






參考


http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html

2010年6月13日 星期日

Install MacOS using Vmware on Windows

本文純屬興趣測試

在Windows平台, 使用Vmware安裝Mac OS


準備工作


1. Vmware
2. Mac Os X - Snow Leopard 10.6.2
3. 導引映像 - darwin.iso (本文用) 或 Rebel EFI.iso



步驟


1. 安裝Vmware
2. 新增虛擬機器(執行Vmware -> File -> New -> Virtual Machine)
會出現Wizard, 選擇 Typical



  • 預設載入的光碟映像檔, 選擇導引映像(darwin.iso), 可安裝時再設定


    OS 選擇 Other->FreeBSD 64-bit, 等下會修改, 猜測是較接近Mac的配置




    選擇虛擬機器要放哪

    硬碟配置 基本16G, 視個人需求




    3. 修改設定檔
    在你選擇的虛擬機器位置, 以記事本開啟 .vmx
    加入 paevm = "true"
    修改 guestOS = "darwin10"
    存檔, 重啟Vmware

    4. 虛擬機 設定
    你的Vmware虛擬機 -> 右鍵 -> Setting


    移除軟碟 (Click floppy -> Remove)
    光碟改成SCSI (Click CD/DVD -> Advanced.. -> SCSI 選個沒在用的吧)


    Note. 頁籤Options -> General, 可在右邊看到version: Mac OS X Server 10.6 (步驟3的結果, 必要)(汗。_。||)


    5. 導引Mac安裝
    啟動虛擬機(記得掛載導引映像)
    看到 "Please wait for the DVD to load...", 換掛載Snow Leopard, (注意: 需勾選 "Connected")

    按 F8 要求輸入其它安裝選項, 輸入 "-v", Enter (非必要, 只是會跑出啟動的Console)


    6. Mac安裝
    若看到選擇語系的畫面, 就恭喜你囉

    下一步 -> 繼續 -> 同意 -> 選擇安裝磁碟清單是空的? 因為還沒分割和掛載
    上面有個 工具程式 -> 磁碟工具程式...

    點左邊的磁碟 -> 右邊的分割, 會出現分割設定, 選架構(1個分割區), 填名稱 然後套用

    如果沒有自動掛載, 左邊的磁碟按右鍵, 掛載
    關閉磁碟工具視窗
    OK 已經有磁碟了, 點安裝唄, 裝完就可以用了


    後記


    我這邊目前重啟要掛載導引光碟才能進到 Mac OS 裡.



    測試平台1
    CPU : Intel Core2 Quad Q8400 2.66 GHz
    Board : Gigabyte - EP43T-USB3
    Ram : 4 GB
    Display : Nvidia GeForce GTX250
    OS : Windows 7 x86


    測試平台2
    CPU : Intel Core i5 750
    Board : 待查
    Ram : 8 GB
    Display : Nvidia GeForce GTX 275 (SLI)
    OS : Window 7 x64
    備註: 無法用dmg安裝, 轉iso後仍可


    測試平台3 - Notebook: Asus N80Vc
    CPU : Intel Core 2 Duo P8400
    Chipest : Intel PM45 Express
    Ram : 4 GB
    Display : Nvidia GeForce 9300m
    OS : Win Vista x86


    驅動程式下載
    Sound
    VGA


    參考


    http://wiki.osx86project.org/wiki/index.php/Vmware
    http://lingbug.spaces.live.com/blog/cns!F1DDC825780F3571!215.entry