如何在superjumper游戏中的模式路径中绘制硬币?

时间:2012-02-27 08:07:04

标签: android libgdx

如何在SuperJumper游戏中放置硬币,因为现在硬币是随机绘制的,但我想绘制特定的图案,如圆形,半圆形和直线形。这是我到目前为止的代码 -

 int coinecoord = rand.nextInt(3);
        switch(coinecoord)
        {
            case 0:
                if (rand.nextFloat() > 0.5f)
                {

                    Coin coin = new Coin(x1 +1, y + Coin.COIN_HEIGHT + rand.nextFloat() * 3,0);
                    coins.add(coin);
                }
                break;
            case 1:
                if (rand.nextFloat() > 0.5f)
                {

                    Coin coin = new Coin(x1 +6, y + Coin.COIN_HEIGHT + rand.nextFloat() * 3,1);
                    coins.add(coin);
                }
                break;
            case 2:
                if (rand.nextFloat() > 0.5f)
                {

                    Coin coin = new Coin(x1 +rand.nextFloat(), y + Coin.COIN_HEIGHT + rand.nextFloat() * 3,2);
                    coins.add(coin);
                }
                break;
        }

        y += (maxJumpHeight - 0.5f) /3.0f;// add plateform
        y -= rand.nextFloat() * (maxJumpHeight / 3);
    }

在世界Renderer类中绘制为---

private void renderItems()
{
    int len = world.springs.size();

    len = world.coins.size();
    for (int i = 0; i < len; i++) {
        Coin coin = world.coins.get(i);
        TextureRegion keyFrame;
        //System.out.println("coin.getMoreCoin()"+coin.getMoreCoin());
        switch (coin.getMoreCoin())
        {
        case 0:
            keyFrame = Assets.coinAnim.getKeyFrame(coin.stateTime, Animation.ANIMATION_LOOPING);
            batch.draw(keyFrame, coin.position.x - 0.5f, coin.position.y - 0.8f, 1, 1.6f);
            break;
        case 1:
            keyFrame = Assets.coinAnim.getKeyFrame(coin.stateTime, Animation.ANIMATION_LOOPING);
            batch.draw(keyFrame, coin.position.x - 0.5f, coin.position.y - 0.8f, 1, 1.6f);
            break;
        case 2:
            keyFrame = Assets.coinAnim.getKeyFrame(coin.stateTime, Animation.ANIMATION_LOOPING);
            batch.draw(keyFrame, coin.position.x - 0.5f, coin.position.y - 0.8f, 1, 1.6f);
            break;

        }

    }

}

请有人帮助我......

1 个答案:

答案 0 :(得分:2)

你可以有一个假想的网格说8乘8.因此,64个单元格意味着64个硬币。最初,您可以将硬币的可见性设置为false(在您的硬币类中,您可以使用另一个属性,即可见性,该可见性最初将设置为false)。你可以通过使一些细胞可见和不可见来创建一些很好的硬币图案。对于每个模式,您可能希望特定单元格中的硬币可见,而某些单元格则不可见。在渲染方法中,显示设置为可见的硬币。