2012-12-07 121 views
0

我有一個遊戲,使用相機視圖,並有敵人在屏幕上飛行。然後你使用你選擇的武器射擊敵人。目前我有4個UIImageView,其中的敵人是動畫。我想讓屏幕上的每個敵人有多個實例(有4個),並且時間更多。做這個的最好方式是什麼?隨機敵人產卵

這是代碼的一部分使用陀螺儀移動一個敵人:(enemyCyborg是的UIImageView)

valueX4 = gyroData.rotationRate.y* 30; 
     valueY4 = gyroData.rotationRate.x* 40; 

     int newX4 = (int)(enemyCyborg.center.x +valueY4); 
     int newY4 = (int)(enemyCyborg.center.y -valueX4); 

     CGPoint newCenter4 = CGPointMake(newX4, newY4); 

     enemyCyborg.center = newCenter4; 

而且他們之內的隨機運動:

- (void) moveCyborg { 

[UIView animateWithDuration:1.0f animations:^{ 
    int fromNumber = -30; 
    int toNumber = 60; 
    int randomNumber = (arc4random()%(toNumber-fromNumber))+fromNumber; 
    //Move the image view to 100, 100 over 10 seconds. 
    enemyCyborg.frame = CGRectMake((int)(enemyCyborg.center.x -randomNumber), (int)(enemyCyborg.center.y -randomNumber), enemyCyborg.frame.size.width, enemyCyborg.frame.size.height); 
}]; 
} 

這顯示的UIImageView再次,它已被隱藏後,無法拍攝它:

- (void) showCyborg { 

enemyCyborg.hidden = NO; 
enemyCyborg.center = CGPointMake((arc4random()%SCREEN_HEIGHT),(arc4random()%SCREEN_WIDTH)); 
enemyCyborg.animationImages = cyborganim; 
enemyCyborg.animationDuration = 0.6; 
enemyCyborg.animationRepeatCount = 0; 
[enemyCyborg startAnimating]; 

} 
+0

你的問題似乎有點含糊。也許你可以通過陳述你遇到什麼困難來重述它?它創造了更多的意見嗎?代表更多的敵人?一起動畫他們?等等 –

+0

...是的,我不知道你想要什麼。只需創建一個可以調用來創建多個敵人的類。 Objective-C是一種面向對象的語言,所以這並不難。 – Josiah

回答

1

你會想要創建o對象封裝敵方模型並使用某種敵方生成器函數產生這些對象。這個生成器函數可能被寫爲一個類函數。

下面是一些一般性建議:

1)您使用的是基於塊的激勵方法。塊是一個很好的方法,但取決於你的表現以及你計劃添加的敵人和其他視覺元素的數量,你可能想要使用Cocos2d,它可以給你各種各樣的功能。 Ray Wenderlich已經發布了一個很棒的cocos2d教程,可以讓你快速啓動並運行。鏈接到該here。 iPhone上的許多遊戲都是使用cocos2d或Unity編寫的。

2)如果您還沒有這樣做,請在https://gamedev.stackexchange.com/中查詢更多基本示例。

+1

謝謝,我會仔細研究一下。 –