2012-03-09 69 views
0

目前在我的遊戲我有我的重生系統的工作是這樣的:改善Cocos2D產卵系統?

[self schedule:@selector(spawnSystem) interval:2.5-(score/30)]; 

這使得敵人產卵慢時得分較低,產卵時更快得分越高然而,這是不好的,不一致的,因爲有時有時沒有足夠的敵人等......

無論如何,有沒有什麼辦法可以讓我可以用這種產卵方法使用CCTime,以便在開始時有更多的敵人,並且在兩分鐘後有沒有那麼多的敵人。有人可以給我一個例子,讓我可以在正確的方向上領先嗎?

所以底線是我希望spawnSystem方法在遊戲開始時被稱爲一秒,大約2分鐘後,它將每3秒或僅在那裏被調用一次。

這可能嗎?

謝謝!

回答

2

據我所知,你使用的線性函數y = 2.5-(score/30),這是一個遞減的線性函數。你想要的更像是一個二次函數,即y = -x^2 -24x + 10. 你可以嘗試二階三次多項式來達到這個目的。

如果使用二次多項式那麼你的代碼將類似於

[self schedule:@selector(spawnSystem) interval:2.5-score*score-24*score + 10)]; 

Your Function

你的函數

quadratic function

二次函數

+0

我明白了,所以我需要使用上述的二次函數。然而,我沒有在Obj-C中用數學工作那麼多,那麼代碼如何呢?我確定它非常簡單,但我只是有點困惑:P – 2012-03-09 21:08:55

+0

任何想法如何將其轉換爲代碼? – 2012-03-12 21:18:20

+0

我添加了一個代碼示例。我希望這會有幫助 – 2012-03-13 06:38:28