JavaFX将文本显示得分更改为动画,然后设置回到得分

时间:2018-12-07 06:28:12

标签: animation javafx text

我目前正在制作一个2人制的乒乓球游戏,该游戏显示每侧的得分。我希望在整个游戏中显示分数,但是当有人得分时,我想要一个“目标”! (以字母开头,最后停顿一小段时间)的动画设置为文本,而不是团队的得分(恰好是电视上某些体育节目中的得分),然后设置为新得分。我在本节中遇到麻烦,这是我的问题:

这是我用于显示动画的代码(不确定这是否正确,因为无法显示,所以无法对其进行测试!)

public void displayGoal(int homeOrAway)
{
    String str = "GOAL!";
    if(homeOrAway == 0)
    {
        final IntegerProperty i = new SimpleIntegerProperty(0);
        Timeline timeline = new Timeline();
        KeyFrame keyFrame = new KeyFrame(
                Duration.seconds(1),
                event -> {
                    if (i.get() > str.length()) {
                        timeline.stop();
                        textHomeScore.setText("" + getHomeScore() + "");
                    } else {
                        textHomeScore.setText(str.substring(0, i.get()));
                        i.set(i.get() + 1);
                    }
                });
        timeline.getKeyFrames().add(keyFrame);
        timeline.play();
    }
    else
    {
        final IntegerProperty i = new SimpleIntegerProperty(0);
        Timeline timeline = new Timeline();
        KeyFrame keyFrame = new KeyFrame(
                Duration.seconds(1),
                event -> {
                    if (i.get() > str.length()) {
                        timeline.stop();
                        textAwayScore.setText(""+ getAwayScore() + "");
                    } else {
                        textAwayScore.setText(str.substring(0, i.get()));
                        i.set(i.get() + 1);
                    }
                });
        timeline.getKeyFrames().add(keyFrame);
        timeline.play();
    }
}

textAwayScore和textHomeScore只是普通的Text,而不是TextField。

如果没有此功能,分数显示会非常好,并且每当球越过桨叶时它们就会计数。最好将动画添加到任意一方,因此,非常感谢您对此有任何帮助。如果有人需要任何澄清,请告诉我,我会澄清一下!谢谢!

0 个答案:

没有答案