2015-09-18 15 views

risposta

11

Sì, lo si può fare e le prestazioni sono piuttosto accurate.

Ecco un video che dimostrano la stessa per iOS: A Quick React Native Demo with OpenGL

OpenGL per Android può anche essere collegato in modo simile.

+8

Quindi si usa reagire nativo per i controlli e tutte le openGL vengono eseguite in Objective-c? Quindi questo è del tutto inutile per lo sviluppo multipiattaforma e quindi per React? Perché questo ha 13 upvotes? –

+0

distaccato: mostra semplicemente come creare un componente nativo sopra l'API OpenGL nativa. –

2

Si dovrebbe dare un'occhiata a Expo e la sua GLView componente, che si interfaccia con l'interfaccia OpenGL nativo, ma lo espone utilizzando un tipo WebGL API.

Puoi persino usare Three.js con quello, usando la libreria expo-three (che è approssimativa ai bordi, ma abbastanza semplice da poter essere modificata in base alle tue esigenze). Ma dal momento che hai accesso all'oggetto gl di WebGL, puoi usare qualsiasi js lib che usi WebGL.

+1

vedere anche https://github.com/react-community/react-native-webgl/ – gre

+0

Expo sembra eccellente. –

1

Dipende davvero dal tipo di gioco che si intende costruire. Ho ricostruito il mio nonogram puzzle game da Obj-C a React Native e, dopo aver messo impegno nell'ottimizzazione (eliminando i rendering ridondanti, utilizzando meno componenti e utilizzando l'API animata laddove possibile), le prestazioni in RN erano buone come Obj-C.

Tuttavia, questo è un gioco di puzzle in 2D che non utilizza alcun tipo di rendering di fantasia - è solo una griglia con numeri e alcune animazioni semplici. Noterò anche che ho dovuto scrivere la griglia stessa nel codice nativo, in quanto genererebbe fino a 625 visualizzazioni RN (per un 25x25) e che ha appena ucciso le prestazioni quando veniva eseguito il rendering.

In conclusione, RN senza alcuna libreria esterna va bene per giochi 2D più semplici come i puzzle, ma esiterei a usarlo per qualsiasi cosa come un gioco platform, azione o 3D - non è fatto apposta per questo.