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