[iOS] TileMap使用教學(4) 如何加入敵人

本篇主要教導如何在地圖上加入敵人。

筆者使用的版本是中文界面,如果界面不同,請自行腦補翻譯(XD),或是留言問我也可以,雖然我不一定答得出來。

開始


首先,打開地圖,點選對象層,在你想要加入敵人的位置按一下左鍵,然後再按右鍵,會出現一個小視窗,就選擇對象屬性

進去後,於名稱的地方輸入EnemySpawn1,標示成第一個敵人出現的位置。然後該視窗最下面的名稱的部分,名稱就輸入Enemy,就輸入1。你可以多做幾個敵人出現的位置,將名稱依序輸入EnemySpawn2、EnemySpawn3....但是最下面的名稱還是enemy,也依舊是1。

好了之後就存檔吧。

創建敵人


我用來顯示遊戲畫面的Layer是直接用HelloWorldLayer,以下都是在這個類別下面改的。

在裡面增加一個方法:

-(void)addEnemyAtX:(int)x Y:(int)y {
    CCSprite *enemy = [CCSprite spriteWithFile:@"enemy1.png"];
    enemy.position = ccp(x,y);
    [self addChild:enemy];
}

首先這要兩個參數,去定義加入敵人的位置座標。然後就是很基本的讀取圖片檔案、設置位置、加到層裡面去。

然後在init方法裡面的“加入player”後面,加入以下code:

NSMutableDictionary *spawnPoint; //You should comment it out !
        for (spawnPoint in [objects objects]) {
            if ([[spawnPoint valueForKey:@"Enemy"] intValue]==1) {
                x = [[spawnPoint valueForKey:@"x"] intValue];
                y = [[spawnPoint valueForKey:@"y"] intValue];
                [self addEnemyAtX:x Y:y];
            }
        }        

如果是依照一路以來的教學,此時你可能會發現有個問題,那就是spawnPoint重複定義了,之前的教程中已經初始化過了spawnPoint,這邊你可以選擇不要加這行,或是換個名稱(這兩個我稍後都會嘗試)。

對了,請務必記住!當你更新過你的地圖,除了存檔以外,一定要確實地把專案中的地圖檔案給移除,然後再重新載入該地圖檔案!你存檔並不會同步更新專案中的檔案噢!


現在編譯看看,你應該有看到敵人了吧?

留言