当我点击状态时,为什么状态没有变为“轻击”(颤动-飞镖)?

时间:2020-05-11 08:50:04

标签: flutter dart

我正在尝试制作一个钢琴方块游戏(颤音-飞镖),我只是随机化了这些方块。但是,该游戏无法正常工作。我点击的第一个音符的状态没有变为“已轻按”状态,但歌曲已开始播放(请参见下面的代码)。我已经导入了所有必需的软件包,所以这不是问题。我也没有得到任何形式的抖动错误。

这是用于随机分配图块的新代码。当我对图块进行硬编码后,游戏就可以正常工作。

final number = new List<int>.generate(300, (i) => i + 1);

var rng = new Random();
final place = new List.generate(300, (_) => rng.nextInt(3));

final noteListStart = new List<Note>.generate(number.length, (i) => Note(number[i],place[i]));

final List<Note> noteListEnd = [
Note(300, -1), Note(301, -1),Note(302, -1),Note(303, -1)
];

final initList = List<Note>.from(noteListStart)..addAll(noteListEnd);

List<Note> initNotes() {
  return
    initList;
}
List<Note> notes = initNotes(); // already declared in a previous class

void _onTap(Note note) {
    bool areAllPreviousTapped = notes
        .sublist(0, note.orderNumber)
        .every((n) => n.state == NoteState.tapped);
    print(areAllPreviousTapped);

    if (currentNoteIndex == 0) {
      audioCache.play('TheForce.mp3');
    }

    if (areAllPreviousTapped) {
      if (!hasStarted) {
        setState(() => hasStarted = true);
        animationController.forward();
      }
      setState(() {
        note.state = NoteState.tapped; // the .tapped is declared in another class
        ++points;
      });
    }
  }

我称为_onTap的代码:

_drawLine(int lineNumber) {
    return Expanded(
      child: Line(
        lineNumber: lineNumber,
        currentNotes: notes.sublist(currentNoteIndex, currentNoteIndex + 5),
        onTileTap: _onTap,
        animation: animationController,
      ),
    );
  }

有人可以帮助我吗?我不知道出了什么问题。

0 个答案:

没有答案