如何在libgdx中绘制数学方程?

时间:2014-02-05 14:30:37

标签: android libgdx

我在libgdx中制作数学游戏。我有生成随机问题并存储在ArrayList中。     现在我想在Scree屏幕上绘制这些Mathmatical表达式,实际上SCreen有3部分

                 ---------------------------------------------
                |     Score                    Sound          |
                |                                             |
                 ----------------------------------------------
                |   3-1=2                                     | 
                |                                             |
                |                           8+9=4             |
                |                                             |
                |                                             |
                |                                             |
                |                                             |
                |              5*4=20                         |
                |                                             |
                |                                             |
                 ----------------------------------------------
                |  Virtual keyboard of                        |
                |  numbers (0-9)for user input                |
                 ----------------------------------------------

任何人都会指导我如何画这样的表情从上到下。

2 个答案:

答案 0 :(得分:0)

你可以使用Action类的力量。只需创建Label's并将MoveTo(或MoveBy)操作附加到他们身上即可。请阅读有关操作here的更多信息。

Stage yourStage = ...
Group root = yourStage.getRoot();

// create some label
final Label mathExpression = new Label("3-1=2", yourSkin, "labelSkinName");
// set initial position, could be random
mathExpression.setPosition(randomXPosition, topPosition); 

// create sequence action, where actions are run one by one
SequenceAction sequence = new SequenceAction(); 
// add simple action that moves actor down by topPosition with 4sec to the sequenca
sequence.addAction(Actions.moveBy(0, -topPosition, 4)); 
// add Runnable action that will be run after that to the sequence
sequence.addAction(Actions.run(new Runnable()
{
    @Override
    void run()
    {
        // this code will be run after label fall, for example, remove it
        mathExpression.remove();
    }
}

// attach your actions sequence to the label
mathExpression.addAction(sequence);

// for example, attach label to root
root.addActor(mathExpression); 

您可以逐个创建这些标签,并且操作会处理它们。

我希望它可以帮到你。

答案 1 :(得分:0)

使用包含3个表的表:headerTable,equationsTable,footerTable:

Table table = new Table();
table.settFillParent(true);
Table headerTable = new Table();
Table equationsTable = new Table();
Table footerTable = new Table();
table.add(headerTable).expandX().height(headerHeight);
table.row();
table.add(equationsTable).expandX().(equationsHeight);
table.row();
table.add(footerTable).expandX().(footerHeight);

现在你需要自己定义高度。现在你真正需要的只是Label和TextButotn。 对于标签创建LabelStyle并将其添加到如下标签:

LabelStyle labelStyle = new LabelStyle(font, Color);
Label scoreLabel = new Label("score", labelStyle);

现在只需将标签添加到相应的表格中,然后使用单元格和填充来获得所需的结果,请将此指南用于表格https://github.com/EsotericSoftware/tablelayout

headerTable.add(scoreLabel).left();
headerTable.add(soundLabel).right();

方程式只是标签,您可以添加到方程表中并使用以下内容更改文本:

label.setText(newEqationText);