收藏品的模式创建-LibGdx

收藏品的模式创建-LibGdx,libgdx,Libgdx,我正在制作一款LibGdx跑步游戏。游戏中有收藏品/硬币。 我已经创建了一个硬币阵列,并在整个游戏中产生了它 为了提高游戏效果,我想制作硬币的图案。比如2枚或3枚硬币,垂直或对角排列的硬币等。 我试图实现这一点,但作为一名新生,我发现这是一项艰巨的任务 请给我推荐一些代码来实现类似三角形和对象数组的模式。 如下所示:等距放置3枚硬币的三角形: 我的硬币阵列和方法包括在这里: 我在屏幕上经过特定距离的最后一枚硬币的基础上添加新硬币 Array<Coin> coins = new Ar

我正在制作一款LibGdx跑步游戏。游戏中有收藏品/硬币。 我已经创建了一个硬币阵列,并在整个游戏中产生了它

为了提高游戏效果,我想制作硬币的图案。比如2枚或3枚硬币,垂直或对角排列的硬币等。 我试图实现这一点,但作为一名新生,我发现这是一项艰巨的任务

请给我推荐一些代码来实现类似三角形和对象数组的模式。 如下所示:等距放置3枚硬币的三角形:

我的硬币阵列和方法包括在这里: 我在屏幕上经过特定距离的最后一枚硬币的基础上添加新硬币

Array<Coin> coins = new Array<Coin>();

private void createCoin() {

    coinObj = objectFactory.createCoin(CoinEnum.random());
    coinObj.isCollided = false;
    coins.add(coinObj);

}

private void spawnCoin() {

    if (coins.size == 0) {
        createCoin();
    } else {
        Coin c = coins.peek();

        if (c.getY() > (Constants.WORLD_HEIGHT / 8))
            createCoin();
    }
    // remove out of screen coins
    if (coins.size > 0) {
        Coin cc = coins.first();
        if (cc.getY() > Constants.WORLD_HEIGHT) {
            coins.removeValue(cc, true);
        }
    }
}
Array coins=new Array();
私人硬币(){
coinObj=objectFactory.createCoin(CoinEnum.random());
coinObj.isCollided=false;
硬币。添加(coinObj);
}
私人硬币(){
如果(硬币大小==0){
createCoin();
}否则{
Coin c=coins.peek();
if(c.getY()>(Constants.WORLD_HEIGHT/8))
createCoin();
}
//移除屏幕外的硬币
如果(硬币大小>0){
Coin cc=coins.first();
if(cc.getY()>Constants.WORLD\u HEIGHT){
硬币。移动值(cc,真);
}
}
}

也希望有人能告诉我我的方法中的错误,如果有!
提前谢谢

首先,尝试对
共同模式进行建模:
-什么是
CoinPattern

这只是一种模式,描述了多枚硬币的排列方式。
-我需要用什么来描述它?
因为它只是一种模式,所以您还不需要任何硬币。
在我看来,一系列的
s(或
Vector2
)就足够了。
每个
都可以描述
图案
对象
的相对
位置
(在您的例子中是
硬币

现在您可以为
模式创建常量了。三角形可以是这样的:

public static final PATTERN_TRIANGLE = new Vector2[] {
    new Vector2(0,0),
    new Vector2(1,0),
    new Vector2(0,1),
};
int posX = x + pattern[i].x;
int posY = y + pattern[i].y;
然后可以创建一个方法
spawnPattern(Vector2[]pattern,intx,inty)
。然后,此方法应为
模式中的每个
矢量2
创建一个
硬币

每个
硬币的位置可以这样计算:

public static final PATTERN_TRIANGLE = new Vector2[] {
    new Vector2(0,0),
    new Vector2(1,0),
    new Vector2(0,1),
};
int posX = x + pattern[i].x;
int posY = y + pattern[i].y;

请注意,使用此方法,
硬币的位置相对于
图案的左下角。

首先,尝试对
硬币图案进行建模:
-什么是
CoinPattern

这只是一种模式,描述了多枚硬币的排列方式。
-我需要用什么来描述它?
因为它只是一种模式,所以您还不需要任何硬币。
在我看来,一系列的
s(或
Vector2
)就足够了。
每个
都可以描述
图案
对象
的相对
位置
(在您的例子中是
硬币

现在您可以为
模式创建常量了。三角形可以是这样的:

public static final PATTERN_TRIANGLE = new Vector2[] {
    new Vector2(0,0),
    new Vector2(1,0),
    new Vector2(0,1),
};
int posX = x + pattern[i].x;
int posY = y + pattern[i].y;
然后可以创建一个方法
spawnPattern(Vector2[]pattern,intx,inty)
。然后,此方法应为
模式中的每个
矢量2
创建一个
硬币

每个
硬币的位置可以这样计算:

public static final PATTERN_TRIANGLE = new Vector2[] {
    new Vector2(0,0),
    new Vector2(1,0),
    new Vector2(0,1),
};
int posX = x + pattern[i].x;
int posY = y + pattern[i].y;

注意,使用这种方法,
硬币的位置是相对于
图案的左下角的位置。

“有人可以告诉我我的方法中的错误”什么不起作用?如果你只想一分钟你在这里提出的问题。您想要创建什么样的模式?把它们写下来,而不仅仅是模式的抽象概念。写下图案。画出来。模式的规则是什么。硬币之间的距离是固定的吗?如果你不知道你想要的图案,你不能指望别人告诉你怎么做。编辑您的帖子,并附上您想要创建的模式的插图和模式规则的解释。
createCoin()
方法也值得分享。代码运行良好。如果有,我也提到了。谢谢。-@1BLASTONE“有人可以告诉我我方法中的错误”什么不起作用?如果你只想一分钟你在这里提出的问题。您想要创建什么样的模式?把它们写下来,而不仅仅是模式的抽象概念。写下图案。画出来。模式的规则是什么。硬币之间的距离是固定的吗?如果你不知道你想要的图案,你不能指望别人告诉你怎么做。编辑您的帖子,并附上您想要创建的模式的插图和模式规则的解释。
createCoin()
方法也值得分享。代码运行良好。如果有,我已经提到了。谢谢。-@1BLASTONE