У меня есть полностью рабочая петля логика игры, где компонент эффекта (Movetoeffect) успешно добавляется в SpriteComponent в дереве игры, но он не дает визуального движения на моем физическом устройстве (Redmi, Android 10). Журналы отладки подтверждают, что вся цепочка событий стреляет правильно. game.add (Swapanimation).
Swapanimation Component (Onload): его нагрузка называется, и он успешно добавляет перемещение в целевую игру. /> Подтверждено, что вся игровая логика, управление состоянием и добавление компонентов выполняется с помощью журналов печати.
Исправлена все ошибки синхронизации всех состояний (например, «Призрачные кусочки» правильно удалены).
выполнил полную дезинфекцию среды: Flutter Clean, Delet Pubspec.lock, Ran Fluth (3.32.2).
Полностью переустановил расширения DART /Flutter в коде VS.
Проблема сохраняется в совершенно новом, минимальном тестовом проекте.
My Fluther Doct -v -это чисто: < /p>
[✓] Flutter (канал стабильный, 3.32.2, ...)
[✓] и инструмент Toolchain ..... ...
...
...
...
...
. pubspec.yaml использует:
flame: ^1.17.0
Учитывая, что логика подтверждается, что он работает, что может привести к тому, что пламя не обновлять прогресс эффекта на конкретном устройстве?// lib/src/utils/animations.dart
import 'dart:async';
import 'dart:math';
import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flutter/animation.dart';
import '../engine/petal_piece.dart';
class SwapAnimation extends Component {
final PetalPiece piece1;
final PetalPiece piece2;
final void Function()? onComplete;
SwapAnimation({required this.piece1, required this.piece2, this.onComplete});
@override
Future onLoad() async {
final initialPosition1 = piece1.position.clone();
final initialPosition2 = piece2.position.clone();
final futures = [];
void addEffect(Component component, Effect effect) {
final futureOr = component.add(effect);
if (futureOr is Future) {
futures.add(futureOr);
}
}
addEffect(
piece1,
MoveToEffect(
initialPosition2,
EffectController(duration: 0.3, curve: Curves.easeInOut),
),
);
addEffect(
piece2,
MoveToEffect(
initialPosition1,
EffectController(duration: 0.3, curve: Curves.easeInOut),
),
);
addEffect(piece1, RotateEffect.to(0.3, EffectController(duration: 0.3)));
addEffect(piece2, RotateEffect.to(-0.3, EffectController(duration: 0.3)));
if (futures.isNotEmpty) {
await Future.wait(futures);
}
piece1.angle = 0;
piece2.angle = 0;
onComplete?.call();
removeFromParent();
}
}
class MatchAnimation extends Component {
final List matchedPieces;
final int cascadeLevel;
final void Function()? onComplete;
MatchAnimation({
required this.matchedPieces,
this.cascadeLevel = 1,
this.onComplete,
});
@override
Future onLoad() async {
final futures = [];
final random = Random();
for (final piece in matchedPieces) {
final sequence = SequenceEffect([
ScaleEffect.to(
Vector2.all(1.0 + cascadeLevel * 0.1),
EffectController(duration: 0.1, curve: Curves.easeOut),
),
//ParallelEffect([
ScaleEffect.to(
Vector2.zero(),
EffectController(
duration: max(0.1, 0.3 - (cascadeLevel * 0.04)),
curve: Curves.easeIn,
),
),
RotateEffect.by(
(random.nextDouble() - 0.5) * 0.5,
EffectController(duration: 0.2),
),
//]),
]);
final futureOr = piece.add(sequence);
if (futureOr is Future) {
futures.add(futureOr);
}
}
if (futures.isNotEmpty) {
await Future.wait(futures);
}
for (final piece in matchedPieces) {
piece.removeFromParent();
}
onComplete?.call();
removeFromParent();
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -lifecycle
Эффекты пламени, не работающие визуально, несмотря на правильную логику и жизненный цикл компонентов ⇐ Android
Форум для тех, кто программирует под Android
1749798654
Anonymous
У меня есть полностью рабочая петля логика игры, где компонент эффекта (Movetoeffect) успешно добавляется в SpriteComponent в дереве игры, но он не дает визуального движения на моем физическом устройстве (Redmi, Android 10). Журналы отладки подтверждают, что вся цепочка событий стреляет правильно. game.add (Swapanimation).
Swapanimation Component (Onload): его нагрузка называется, и он успешно добавляет перемещение в целевую игру. /> Подтверждено, что вся игровая логика, управление состоянием и добавление компонентов выполняется с помощью журналов печати.
Исправлена все ошибки синхронизации всех состояний (например, «Призрачные кусочки» правильно удалены).
выполнил полную дезинфекцию среды: Flutter Clean, Delet Pubspec.lock, Ran Fluth (3.32.2).
Полностью переустановил расширения DART /Flutter в коде VS.
Проблема сохраняется в совершенно новом, минимальном тестовом проекте.
My Fluther Doct -v -это чисто: < /p>
[✓] Flutter (канал стабильный, 3.32.2, ...)
[✓] и инструмент Toolchain ..... ...
...
...
...
...
. pubspec.yaml использует:
flame: ^1.17.0
Учитывая, что логика подтверждается, что он работает, что может привести к тому, что пламя не обновлять прогресс эффекта на конкретном устройстве?// lib/src/utils/animations.dart
import 'dart:async';
import 'dart:math';
import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flutter/animation.dart';
import '../engine/petal_piece.dart';
class SwapAnimation extends Component {
final PetalPiece piece1;
final PetalPiece piece2;
final void Function()? onComplete;
SwapAnimation({required this.piece1, required this.piece2, this.onComplete});
@override
Future onLoad() async {
final initialPosition1 = piece1.position.clone();
final initialPosition2 = piece2.position.clone();
final futures = [];
void addEffect(Component component, Effect effect) {
final futureOr = component.add(effect);
if (futureOr is Future) {
futures.add(futureOr);
}
}
addEffect(
piece1,
MoveToEffect(
initialPosition2,
EffectController(duration: 0.3, curve: Curves.easeInOut),
),
);
addEffect(
piece2,
MoveToEffect(
initialPosition1,
EffectController(duration: 0.3, curve: Curves.easeInOut),
),
);
addEffect(piece1, RotateEffect.to(0.3, EffectController(duration: 0.3)));
addEffect(piece2, RotateEffect.to(-0.3, EffectController(duration: 0.3)));
if (futures.isNotEmpty) {
await Future.wait(futures);
}
piece1.angle = 0;
piece2.angle = 0;
onComplete?.call();
removeFromParent();
}
}
class MatchAnimation extends Component {
final List matchedPieces;
final int cascadeLevel;
final void Function()? onComplete;
MatchAnimation({
required this.matchedPieces,
this.cascadeLevel = 1,
this.onComplete,
});
@override
Future onLoad() async {
final futures = [];
final random = Random();
for (final piece in matchedPieces) {
final sequence = SequenceEffect([
ScaleEffect.to(
Vector2.all(1.0 + cascadeLevel * 0.1),
EffectController(duration: 0.1, curve: Curves.easeOut),
),
//ParallelEffect([
ScaleEffect.to(
Vector2.zero(),
EffectController(
duration: max(0.1, 0.3 - (cascadeLevel * 0.04)),
curve: Curves.easeIn,
),
),
RotateEffect.by(
(random.nextDouble() - 0.5) * 0.5,
EffectController(duration: 0.2),
),
//]),
]);
final futureOr = piece.add(sequence);
if (futureOr is Future) {
futures.add(futureOr);
}
}
if (futures.isNotEmpty) {
await Future.wait(futures);
}
for (final piece in matchedPieces) {
piece.removeFromParent();
}
onComplete?.call();
removeFromParent();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79664480/flame-effects-not-visually-running-despite-correct-logic-and-component-lifecycle[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия