Qual è la tecnica migliore per ridimensionare uno sprite con una dimensione esatta. La proprietà della scala è un moltiplicatore, ma se vuoi che uno sprite sia esattamente X pixel di larghezza, esiste una tecnica semplice? Oppure, richiederebbe semplicemente l'utilizzo della dimensione desiderata e degli sprite effettivi contentsize
per calcolare l'operazione scale
necessaria?Scala CCSprite alla dimensione esatta
7
A
risposta
19
Credo che questo funziona:
-(void)resizeSprite:(CCSprite*)sprite toWidth:(float)width toHeight:(float)height {
sprite.scaleX = width/sprite.contentSize.width;
sprite.scaleY = height/sprite.contentSize.height;
}
metterlo in gioco, e utilizzare in questo modo:
[self resizeSprite:mySprite toWidth:350 toHeight:400];
0
È possibile utilizzare queste due proprietà: scalaX e scalaY. ad esempio, utilizzare in una barra HP.
hpBarSprite.scaleX = hpCurrent/hpMax;
+0
penso che tu intenda max/corrente, giusto? – johnbakers
+0
Per una barra, dovrebbe essere '((1.0/max) * corrente)' poiché 1.0 è 100%. – Voldemort
Problemi correlati
- 1. Come ottenere la dimensione di CCSprite dopo aver cambiato scala
- 2. css stampa esatta dimensione
- 3. Aggiungi UIImage a CCSprite?
- 4. CGAffineTransformMakeScale Rende UIView salta alla dimensione originale prima della scala
- 5. Come ottenere la dimensione esatta della directory della cache: android
- 6. Ridimensionare un'equazione per adattarla alla larghezza esatta della pagina
- 7. C# WPF: cursore che va alla posizione esatta
- 8. Spostamento di corpi Box2d come oggetti CCSprite
- 9. Associare alla dimensione dell'elemento (div)
- 10. Aumentare la dimensione heap JVM per Scala?
- 11. La dimensione del carattere * è uguale alla dimensione di int *?
- 12. Ridimensiona l'immagine JPEG alla dimensione specificata
- 13. Leaflet: modifica popup alla dimensione dell'immagine
- 14. Cambia dimensione carattere in base alla lingua
- 15. Stringa corrispondenza esatta
- 16. Solr suggeriscono corrispondenza esatta
- 17. misurazione esatta del tempo
- 18. "With" equivalente alla versione per Scala?
- 19. Scala lista di tuple alla lista piatta
- 20. Corrispondenza esatta del filtro AngularJS
- 21. Cocos2d CCSprite Classe ottenere il nome del file immagine
- 22. Come ottenere un campione con una dimensione esatta del campione in Spark RDD?
- 23. Come faccio a determinare la dimensione esatta del file immagine PE usando la sua intestazione?
- 24. Come posso specificare una dimensione di output esatta per il mio grafico networkx?
- 25. Come ottenere e impostare il valore RGB/RGBA di un pixel in un CCSprite (cocos2d-x)
- 26. Posso limitare la dimensione di un array in Scala?
- 27. Scala macro e limite della dimensione del metodo JVM
- 28. OpenCV trova il testo Scala da una dimensione
- 29. Perché l'elenco Scala non ha un campo dimensione?
- 30. Come ottenere la dimensione originale di un'immagine in scala
Onestamente, ho sempre proceduto come per il vostro suggerimento (calcolare scaleX e scaleY), non cercando un'altra risposta Mi limiterò a aggiungere questa domanda come una delle preferite, vedere che cosa gli scienziati hanno preparato come risposta. – YvesLeBorg
Calcolare il moltiplicatore di scala usando la nuova dimensione e la dimensione corrente è l'unico modo per andare (oppure puoi sempre creare un metodo per quello) perché internamente, cocos2d invia semplicemente i valori di 'scaleX' e' scaleY' alla funzione openGL 'glScalef' quando è il momento di disegnare lo sprite. – Lukman