java - 创建一个包含 RECTANGLE 和 INTEGER 的数组

标签 java arrays libgdx

private Array<Rectangle> livinglamas;

我希望这个数组的每个矩形都包含一个整数。这个整数应该在spawnLama()中指定,这样每个矩形都包含它自己的值。我该怎么做?

private void spawnLama() {
    Rectangle livinglama = new Rectangle();

    livinglama.x = MathUtils.random(-800, -400 - 64);
    livinglama.y = 0;
    livinglama.width = 64;
    livinglama.height = 64;

    livinglamas.add(livinglama);



    lastLamaTime = TimeUtils.nanoTime();
}

@Override
    public void render() {

...

    elapsedTime += Gdx.graphics.getDeltaTime();
    if(TimeUtils.nanoTime() - lastLamaTime > 1000000000L) spawnLama();


    Iterator<Rectangle> iter = livinglamas.iterator();
    while(iter.hasNext()) {
        Rectangle livinglama = iter.next();
        livinglama.x += LamaXBewegung * Gdx.graphics.getDeltaTime();
        if(livinglama.y + 64 < -575) iter.remove();
    }
   batch.begin();

    for(Rectangle livinglama: livinglamas) {
        batch.draw(animation.getKeyFrame(elapsedTime, true), livinglama.x, livinglama.y);
    }
    elapsedTime += Gdx.graphics.getDeltaTime();

...

最佳答案

对其进行子类化并使用子类而不是 Rectangle:

public class RectangleWithInt extends Rectangle {
    public int value;
}

或者使用Libgdx的ArrayMap。与 Java 的 Map 不同,您可以有重复的键,并且像 Array 一样,它是有序的:

private ArrayMap<Rectangle, Integer> livinglamas;

//...

livinglamas.put(livinglama, someInt);


//...
Iterator<Entry<Rectangle, Integer>> iter = livinglamas.iterator();
while (iter.hasNext()){
    Entry<Rectangle, Integer> entry = iter.next();
    Rectangle lama = entry.key;
    int value = entry.value;
    //...
}

关于java - 创建一个包含 RECTANGLE 和 INTEGER 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039310/

相关文章:

javascript - 如何更改数组字符串中特定单词的颜色? : Javascript/jQuery

c# - 根据参数将字符串数组转换为另一个字符串数组

使用 LibGDX 相对于相机位置的 Java 旋转模型

ios - 如何在iOS上覆盖UIViewController的功能?

java - 为什么要记录链表中移除的第一个元素?

java - 使用post方法后信息不会出现在其他页面

Javascript 随机引用 onclick

java - LibGDX 路径 (CatmullRomSpline) 恒速

java - Servlet 不工作

java - 从 float 中恢复原始数字