如何在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;
}
}
}
请有人帮助我......
答案 0 :(得分:2)
你可以有一个假想的网格说8乘8.因此,64个单元格意味着64个硬币。最初,您可以将硬币的可见性设置为false(在您的硬币类中,您可以使用另一个属性,即可见性,该可见性最初将设置为false)。你可以通过使一些细胞可见和不可见来创建一些很好的硬币图案。对于每个模式,您可能希望特定单元格中的硬币可见,而某些单元格则不可见。在渲染方法中,显示设置为可见的硬币。