FAQ:
cocos2d per iPhone: Come aggiornare il codice di cocos2d-iPhone in un progetto creato con una Sagoma di Progetto di cocos2d? How to update the cocos2d-iphone code in a project created with a cocos2d Project Template?Cerchi il mio cocos2d d'iPhone FAQs & Tutorials
Per favore annoti che la ricerca di blog nell'angolo giusto superiore non cerca il mio FAQs e Seminari universitari sotto la guida di un tutor.- Annoti: per favore non condivida collegamenti di trasferimento di dati diretti con file PDF, i collegamenti di trasferimento di dati finiscono dopo di dei minuti di coppia!
La soluzione migliore sarebbe quella di usare il controllo di sorgente insieme con la mia Sagoma di Progetto di Xcode. Capisco che non tutti sono in questa situazione fortunata e che utilizzazione di software di controllo di sorgente per fondere cambiamenti è tutto fuorché banale per il non iniziato. Allora volli abbozzare i passi che Lei ha bisogno di fare per garantire che Lei può ancora fare passare a potenza superiore alla versione cocos2d ultima anche se Lei iniziò da una Sagoma di Progetto di cocos2d. So i wanted to outline the steps you need to do to ensure you can still upgrade to the latest cocos2d version even if you started from a cocos2d Project Template.
La quantità di sforzo che entra in questo e la quantità di problemi a cui Lei starà di fronte dipende sia da quali versioni Lei sta facendo passare a potenza superiore da sia a così come il Suo codice sorgente, per lo più che intrecciato il Suo codice è con il codice macchine cocos2d.
Lezione di trasferimento di dati PDF
Il supporto prima che Lei inizia la procedura d'ammodernamento
Faccia una copia del Suo progetto in caso Lei ha bisogno di iniziare o Lei si troverà in una situazione di vicolo cieco e deciderà che Lei non aggiornerebbe.
Tenga a mente che mentre può sembrare assennato solo fare passare a potenza superiore le parti del motore cocos2d che Lei ha interesse per, in realtà questo soltanto compita problemi e il più spesso non lavorerà pure. O affatto. Allora Lei starà facendo passare a potenza superiore tutti cocos2d. So you'll be upgrading all of cocos2d.
Anche, se Lei sta restando indietro lontano dietro, ad esempio Lei sta ancora usando cocos2d v0.8x o sotto e vuole fare passare a potenza superiore a v0.99 le differenze possono essere così enormi che un ammodernamento è quasi impossibile. Invece Lei può volere provare un approccio diverso #2 in quel caso (vedi sotto).
Si avvicini #1:
sostituisca file cocos2dQuest'approccio è solo raccomandato se la Sua versione cocos2d che Lei sta usando attualmente non riveste con isolante termico lontano dietro la corrente cocos2d la versione Lei vuole fare passare a potenza superiore a. A occhio, se sono meno di 0.1 numeri di versione Lei può essere capace di avere successo con quest'approccio, altrimenti provare l'approccio #2 sotto! Quest'approccio non è per il debole di cuore e una buona quantità di conoscenza di situazione di progetti e comprensione che gli errori di compilatore sono aspettati. This approach is not for the faint of heart and a good amount of project setup knowledge and understanding compiler errors is expected.
- scarichi la versione cocos2d ultima e apra in caso di necessità, presumo che è adesso in cocos2d-iphone chiamato di una cartella
- dal cocos2d-iphone la cartella copiano queste cartelle:
/cocos2d
/CocosDenshion
/cocoslive
/external/Box2d
/external/Chipmunk
/external/FontLabel
/external/libpng
/external/TouchJSON
/external/Tremor
- cancelli le cartelle esistenti nel Suo progetto e poi incolli queste cartelle in posto (soltanto non li aggiorni perché altrimenti Lei non toglierà alcuno forse cancellò file della nuova versione cocos2d). Annoti: alcune cartelle saranno in posizioni diverse allora Lei dovrebbe copiarli a uno a uno e avere cura che Lei li copia al posto corretto!some of the folders will be in different locations so you may have to copy them one-by-one and take care that you copy them to the correct place!
- apra Xcode e aggiunga qualsiasi file aggiunto dalla nuova versione cocos2d che non sono aggiunti al Suo progetto già
- tolga qualsiasi file cocos2d dal progetto che è mostrato in rosso, loro devono esser stati tolti dalla nuova versione cocos2d
Adesso provi a costruire. Lei probabilmente riceverà molti errori. Questo deve esser aspettato. Fissi qualsiasi errore che è nel Suo codice. Non provi a fissare errori in cocos2d - Lei vuole che il Suo codice lavori con la nuova versione cocos2d, non l'altra strada intorno a! This is to be expected. Fix any errors that are in your code. Don't try to fix errors in cocos2d - you want your code to work with the new cocos2d version, not the other way around!
Se Lei non può risolvere tutti i problemi e loro sembrano di essere cocos2d interno allora ricontrollano questo tutti i file che possono esser stati aggiunti dalla nuova versione cocos2d sono anche aggiunti al Suo progetto. Se questo ancora non aiuta Lei può avere più fortuna provando il secondo approccio.
Si avvicini #2:
inizi un nuovo progetto da sagoma, poi riaggiunga il Suo codice & beniSe le differenze di versione della versione cocos2d che Lei sta attualmente azionando con e quel che a cui Lei vuole fare passare a potenza superiore sono troppo grandi Lei potrebbe volere provare un approccio diverso. A occhio, se Lei sta restando indietro più di 0.1 numeri di versione dietro quest'approccio possono essere più assennati. Questo anche ha la maggior parte senso se il Suo progetto consiste di non troppe classi e file. It also makes the most sense if your project consists of not too many classes and files.
In questo caso, installi la nuova versione cocos2d e inizi un nuovo progetto dalla nuova versione cocos2d. Allora semplicemente riaggiunga il Suo codice e risorse a quel progetto e fissi alcuno compila errori che potrebbero apparire. In questo modo Lei può essere certo che qualsiasi errore è a causa del Suo codice non aggiornato per lavorare con la versione cocos2d ultima rispetto a nessuno conoscenza se Lei ha sostituito veramente e ha aggiunto tutti i file cocos2d correttamente, come sarà il caso con approccio #1 sopra. In this way you can be certain that any errors are due to your code not being updated to work with the latest cocos2d version as opposed to not knowing whether you've really replaced and added all cocos2d files correctly, as will be the case with approach #1 above.
Ma non alzi le Sue speranze: Lei ancora probabilmente riceverà una tonnellata d'errori. Particolarmente se il Suo codice è costruito contro una versione cocos2d che non ha usato il CC namespace già (tutti i nomi di classe cocos2d sono adesso prefissati con CC). Especially if your code is built against a cocos2d version which didn't use the CC namespace yet (all cocos2d class names are now prefixed with CC).









Schiarimento di posto. Grazie!
E, certamente, ho alcuni la domanda
- tutto è relativo, ma per codice comune è migliore per usare NSString, NSArray (e pagare il costo di creare nuovi oggetti) o i mutabili? Quale può essere i parametri per scegliere tra ognuno?
- Mi sto chiedendo se il nuovo iPhone 4.0′s il più grande svolgimento sarà un problema. I giochi che dirigono pianamente in iPhone 1i e 2i dispositivi di generazione probabilmente funzioneranno troppo velocemente?
Ciao Max,
dubito che i NSMutable* datasets siano sicari di svolgimento. Non ho fatto nessuna prova ma sono piuttosto sicuro che se Lei non li cambia affatto loro probabilmente si comporteranno così buono come i nonmutabili. Adesso, una volta Lei *do* ha bisogno di cambiare gli assortimenti o gli spaghi è buono averli mutabile in modo che la roba sia avuta cura per Lei dietro le quinte. D'altra parte, se Lei sa che Lei starà solo creando gli articoli una volta, ma riordinare mai, togliere o aggiungere che gli altri allora usano i nonmutabili. Per me è una questione di caso d'uso, piuttosto che svolgimento. Now, once you *do* need to change the arrays or strings it’s good to have them mutable so that stuff is taken care for you behind the scenes. On the other hand, if you know that you’ll only be creating the items once but never re-order, remove or add others then use the non-mutable ones. For me it’s a matter of use case rather than performance.
I giochi non funzioneranno più velocemente su più nuovi dispositivi. il cocos2d's CCDirector si assicura di questo. Lei migliora framerates certamente, ma non più velocemente gameplay. Questo tiene true per tutti i motori di gioco moderni. You do get better framerates of course but not faster gameplay. That holds true for all modern game engines.