// ignore_for_file: avoid_print import 'package:flutter/material.dart'; import 'package:flutter_cocos_view/flutter_cocos_view.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; class LoaderScreen extends StatefulWidget { const LoaderScreen({Key? key}) : super(key: key); @override State createState() => _LoaderScreenState(); } class _LoaderScreenState extends State { CocosWidgetController? _cocosWidgetController; double _sliderValue = 0.0; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Safe Mode Screen'), ), body: Card( margin: const EdgeInsets.all(8), clipBehavior: Clip.antiAlias, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20.0), ), child: Stack( children: [ CocosWidget( onCocosCreated: onCocosCreated, onCocosMessage: onCocosMessage, useAndroidViewSurface: true, ), Positioned( bottom: 20, left: 20, right: 20, 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, max: 20, ), ], ), ), ), ), ], ), ), ); } void setRotationSpeed(String speed) { _cocosWidgetController?.postMessage( 'Cube', 'SetRotationSpeed', speed, ); } void onCocosMessage(message) { print('Received message from cocos: ${message.toString()}'); } // Callback that connects the created controller to the cocos controller void onCocosCreated(controller) { _cocosWidgetController = controller; } }