React uruchamia silnik JS V8, aby zbudować interfejs użytkownika w trybie macierzystym. Może oczywiście podłączyć się do biblioteki macierzystej OpenGL, ale czy możemy rzeczywiście tworzyć wydajne gry przy użyciu React Native?Czy mogę tworzyć interaktywne gry 3D lub 2D, używając React Native?
Odpowiedz
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.
Oto niektóre źródła pod warunkiem, że nie jest to aplikacja z wideo, ale zamiast niektórych zhakowane razem wersji. https://github.com/jlongster/play-react-native-opengl
Nadal szukasz implementacji OpenGL na React Native z dokumentacją
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.
zobacz także https://github.com/react-community/react-native-webgl/ – gre
Expo wygląda świetnie. –
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.
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? –
oddelegowany - pokazuje tylko, jak utworzyć komponent natywny na natywnym OpenGL ES API. –