import 'package:flutter/material.dart'; import 'package:flutter_cocos_view/flutter_cocos_view.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; class SimpleScreen extends StatefulWidget { const SimpleScreen({Key? key}) : super(key: key); @override State createState() => _SimpleScreenState(); } class _SimpleScreenState extends State { static final GlobalKey _scaffoldKey = GlobalKey(); CocosWidgetController? _cocosWidgetController; double _sliderValue = 0.0; @override void initState() { super.initState(); } @override void dispose() { _cocosWidgetController?.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, appBar: AppBar( title: const Text('Simple Screen'), ), body: Card( margin: const EdgeInsets.all(0), clipBehavior: Clip.antiAlias, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20.0), ), child: Stack( children: [ CocosWidget( onCocosCreated: _onCocosCreated, onCocosMessage: onCocosMessage, onCocosSceneLoaded: onCocosSceneLoaded, useAndroidViewSurface: false, borderRadius: const BorderRadius.all(Radius.circular(70)), ), Positioned( bottom: 0, left: 0, right: 0, child: PointerInterceptor( child: Card( elevation: 10, child: Column( children: [ const Padding( padding: EdgeInsets.only(top: 20), child: Text("Rotation speed:"), ), Slider( onChanged: (value) { setState(() { _sliderValue = value; }); setRotationSpeed(value.toString()); }, value: _sliderValue, min: 0.0, max: 1.0, ), ], ), ), ), ), ], )), ); } void setRotationSpeed(String speed) { _cocosWidgetController?.postMessage( 'Cube', 'SetRotationSpeed', speed, ); } void onCocosMessage(message) { print('Received message from cocos: ${message.toString()}'); } void onCocosSceneLoaded(SceneLoaded? scene) { if (scene != null) { print('Received scene loaded from cocos: ${scene.name}'); print('Received scene loaded from cocos buildIndex: ${scene.buildIndex}'); } else { print('Received scene loaded from cocos: null'); } } // Callback that connects the created controller to the cocos controller void _onCocosCreated(controller) { print('Received _onCocosCreated: null'); controller.resume(); _cocosWidgetController = controller; } }