本篇主要教導如何在地圖上加入敵人。
筆者使用的版本是中文界面,如果界面不同,請自行腦補翻譯(XD),或是留言問我也可以,雖然我不一定答得出來。
首先,打開地圖,點選對象層,在你想要加入敵人的位置按一下左鍵,然後再按右鍵,會出現一個小視窗,就選擇對象屬性。
進去後,於名稱的地方輸入EnemySpawn1,標示成第一個敵人出現的位置。然後該視窗最下面的名稱和值的部分,名稱就輸入Enemy,值就輸入1。你可以多做幾個敵人出現的位置,將名稱依序輸入EnemySpawn2、EnemySpawn3....但是最下面的名稱還是enemy,值也依舊是1。
好了之後就存檔吧。
我用來顯示遊戲畫面的Layer是直接用HelloWorldLayer,以下都是在這個類別下面改的。
在裡面增加一個方法:
首先這要兩個參數,去定義加入敵人的位置座標。然後就是很基本的讀取圖片檔案、設置位置、加到層裡面去。
然後在init方法裡面的“加入player”後面,加入以下code:
如果是依照一路以來的教學,此時你可能會發現有個問題,那就是spawnPoint重複定義了,之前的教程中已經初始化過了spawnPoint,這邊你可以選擇不要加這行,或是換個名稱(這兩個我稍後都會嘗試)。
對了,請務必記住!當你更新過你的地圖,除了存檔以外,一定要確實地把專案中的地圖檔案給移除,然後再重新載入該地圖檔案!你存檔並不會同步更新專案中的檔案噢!
現在編譯看看,你應該有看到敵人了吧?
筆者使用的版本是中文界面,如果界面不同,請自行腦補翻譯(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];
}
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];
}
}
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,這邊你可以選擇不要加這行,或是換個名稱(這兩個我稍後都會嘗試)。
對了,請務必記住!當你更新過你的地圖,除了存檔以外,一定要確實地把專案中的地圖檔案給移除,然後再重新載入該地圖檔案!你存檔並不會同步更新專案中的檔案噢!
現在編譯看看,你應該有看到敵人了吧?
留言
張貼留言