@flare-engine/反应
反应土著融合—— <GameView> (Skia Canvas + 游戏循环 + 输入),, <VirtualJoystick> 编号 : <VirtualButton> 编号 : <LoadingScreen> 叠接, useGame 编号 : useEntity 编号 : useGameLoop 钩子. createSkiaFrameRenderer 调整一个 @flare-engine/render Renderer 给Skia的回电.
安装
bun add @flare-engine/react @shopify/react-native-skia react-native-reanimated react-native-worklets react-native-safe-area-context
端点 : react ( , react-native (>=0.79), @shopify/react-native-skia (>=2), react-native-reanimated (>=4), react-native-worklets (>=0.7), react-native-safe-area-context (>=四. react-native-reanimated, (中文(简体) ), react-native-worklets 财务报告和审定财务报表 react-native-safe-area-context 均为所有输入值 <GameView> ——一个没有其中任何一个的项目未能在运行时解决.
需要新建筑. 重命名为 4 的 New-Architecture , 所以使用
<GameView>必须运行与newArchEnabled=true在实践中,这没有付出任何代价——实际上,这是 RN自 0.76 起的默认@flare-engine/create模板标出 Expo SDK 的响应 土著强迫它。 旧建筑支持被故意丢入 ADR-0002 (韩语)数字 : 上一个>=3.19.1地板承诺了没有脚手架模板能产生的东西,所以它是 永远无法核实.
使用量
import React from 'react';
import {
GameView,
VirtualJoystick,
useGameLoop,
type GameContextValue,
} from '@flare-engine/react';
function HUD() {
useGameLoop((_dt) => {
// per-frame logic here
});
return null;
}
function bootstrap(_ctx: GameContextValue): void {
// initialise scenes, load assets, etc.
}
export function App() {
return (
<GameView
config={{ fixedDt: 1 / 60 }}
onReady={(ctx) => bootstrap(ctx)}
>
<HUD />
<VirtualJoystick onStateChange={(_state) => {}} />
</GameView>
);
}
见 API 规格。 。 。 .
许可证
阿帕奇 - 2.0