2015-09-18 14 views

Odpowiedz

11

Tak, można to zrobić, a wydajność wygląda całkiem zgrabnie.

Oto film, który wykazywać takie same dla iOS: A Quick React Native Demo with OpenGL

OpenGL dla Androida można również podłączyć się w podobny sposób.

+8

Więc używasz natywnego dla kontrolek, a cały openGL jest wykonywany w Objective-c? Więc jest to całkowicie bezużyteczne dla rozwoju wielu platform, a zatem React? Dlaczego to 13 przegranych? –

+0

oddelegowany - pokazuje tylko, jak utworzyć komponent natywny na natywnym OpenGL ES API. –

2

Należy spojrzeć na Expo i jego GLView komponentu, które interfejsy z natywnego interfejsu OpenGL ale naraża go za pomocą interfejsu API WebGL typu.

Możesz nawet użyć Three.js przy użyciu biblioteki expo-three (która jest szorstka na krawędziach, ale wystarczająco prosta, abyś mógł ją dostosować do swoich potrzeb). Ale tak naprawdę, ponieważ masz dostęp do obiektu WebGL gl, możesz użyć dowolnej biblioteki js, która używa WebGL.

+1

zobacz także https://github.com/react-community/react-native-webgl/ – gre

+0

Expo wygląda świetnie. –

1

To naprawdę zależy od rodzaju gry, którą zamierzasz zbudować. Przebudowałem mój nonogram puzzle game z Obj-C na React Native, a po wysiłku włożonym w optymalizację (eliminując nadmiarowe renderowanie, używając mniejszej liczby komponentów i używając animowanego API, gdzie tylko to możliwe), wydajność w RN była po prostu dobra jako Obj-C.

Jest to jednak gra logiczna 2D, która nie wykorzystuje żadnego fantazyjnego renderowania - to tylko siatka z liczbami i kilkoma prostymi animacjami. Zwrócę też uwagę, że musiałem napisać samą siatkę w kodzie natywnym, ponieważ generowałoby to do 625 widoków RN (dla 25x25), a to po prostu zabijało wydajność, gdy było renderowane.

Podsumowując, RN bez żadnych zewnętrznych bibliotek jest w porządku dla prostszych gier 2D, takich jak łamigłówki, ale nie wahałbym się używać go do czegoś takiego jak platformówka, akcja lub gra 3D - to po prostu nie jest do tego stworzone.