Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较Libgdx中的sprite_Java_Libgdx - Fatal编程技术网

Java 比较Libgdx中的sprite

Java 比较Libgdx中的sprite,java,libgdx,Java,Libgdx,这是我的代码: private Sprite sprGuy; sprGuy = atlas.createSprite("guy"); Sprite a = new Sprite(sprGuy); Sprite b = new Sprite(sprGuy); if (a.equals(b)) { System.out.println("a is equal to b"); } 根据Libgdx文档:新的Sprite(Spri

这是我的代码:

    private Sprite sprGuy;

    sprGuy  = atlas.createSprite("guy");

    Sprite a = new Sprite(sprGuy);
    Sprite b = new Sprite(sprGuy);

    if (a.equals(b)) {
        System.out.println("a is equal to b");
    }
根据Libgdx文档:新的Sprite(Sprite-Sprite)。。。“创建一个精灵,该精灵在各个方面都是指定精灵的副本。”

但是如果'a'是sprGuy的副本而'b'是sprGuy的副本,为什么a.equals(b)是假的


我该如何检查精灵是否来自同一个“父亲”

正如您在libGDX源文件中看到的那样,
equals()
方法尚未为
Sprite
实现


因此,您正在调用Java
对象的默认
equals()
方法,该方法只是比较引用,这对于代码中的两个对象是不同的。

正如您在libGDX源文件中看到的那样,
equals()
方法尚未为
Sprite
实现


因此,您正在调用Java
对象的默认
equals()
方法,该方法只是比较引用,这对于代码中的两个对象是不同的。

正如您在libGDX源文件中看到的那样,
equals()
方法尚未为
Sprite
实现


因此,您正在调用Java
对象的默认
equals()
方法,该方法只是比较引用,这对于代码中的两个对象是不同的。

正如您在libGDX源文件中看到的那样,
equals()
方法尚未为
Sprite
实现


因此,您正在调用Java
Object
类的默认
equals()
方法,该方法只是比较引用,这对于代码中的两个对象是不同的。

如果它是为了简单的东西,并且可以控制sprite中纹理的分配,您可以使用以下示例:

private Sprite sprGuy;

sprGuy  = atlas.createSprite("guy");

Sprite a = new Sprite(sprGuy);
Sprite b = new Sprite(sprGuy);

if (a.getTexture().equals(b.getTexture())) {
    System.out.println("a is equal to b");
}

如果是为了一些简单的东西,并且可以控制精灵中纹理的指定,则可以使用以下示例:

private Sprite sprGuy;

sprGuy  = atlas.createSprite("guy");

Sprite a = new Sprite(sprGuy);
Sprite b = new Sprite(sprGuy);

if (a.getTexture().equals(b.getTexture())) {
    System.out.println("a is equal to b");
}

如果是为了一些简单的东西,并且可以控制精灵中纹理的指定,则可以使用以下示例:

private Sprite sprGuy;

sprGuy  = atlas.createSprite("guy");

Sprite a = new Sprite(sprGuy);
Sprite b = new Sprite(sprGuy);

if (a.getTexture().equals(b.getTexture())) {
    System.out.println("a is equal to b");
}

如果是为了一些简单的东西,并且可以控制精灵中纹理的指定,则可以使用以下示例:

private Sprite sprGuy;

sprGuy  = atlas.createSprite("guy");

Sprite a = new Sprite(sprGuy);
Sprite b = new Sprite(sprGuy);

if (a.getTexture().equals(b.getTexture())) {
    System.out.println("a is equal to b");
}

这是我的新方法:

首先,我创建了这个新类:

public class SpriteAux {

    public String name;
    public Sprite sprite;

    public SpriteAux(Sprite sprite, String name) {
        this.sprite = sprite;
        this.name = name;       
    }

}
因此,创建包含精灵和名称的新对象时,我们可以获得并比较名称:

private Sprite sprGuy;
private Sprite sprBoss;

sprGuy  = atlas.createSprite("guy");
sprBoss  = atlas.createSprite("boss");

SpriteAux a = new SpriteAux(sprGuy, "guy");
SpriteAux b = new SpriteAux(sprGuy, "guy");
SpriteAux c = new SpriteAux(sprBoss, "boss");

if (a.name.equals(b.name)) {                  //This is true!
    System.out.println("a is equal to b");
}

if (a.name.equals(c.name)) {                  //This is false!
    System.out.println("a is equal to c");
}

这是我的新方法:

首先,我创建了这个新类:

public class SpriteAux {

    public String name;
    public Sprite sprite;

    public SpriteAux(Sprite sprite, String name) {
        this.sprite = sprite;
        this.name = name;       
    }

}
因此,创建包含精灵和名称的新对象时,我们可以获得并比较名称:

private Sprite sprGuy;
private Sprite sprBoss;

sprGuy  = atlas.createSprite("guy");
sprBoss  = atlas.createSprite("boss");

SpriteAux a = new SpriteAux(sprGuy, "guy");
SpriteAux b = new SpriteAux(sprGuy, "guy");
SpriteAux c = new SpriteAux(sprBoss, "boss");

if (a.name.equals(b.name)) {                  //This is true!
    System.out.println("a is equal to b");
}

if (a.name.equals(c.name)) {                  //This is false!
    System.out.println("a is equal to c");
}

这是我的新方法:

首先,我创建了这个新类:

public class SpriteAux {

    public String name;
    public Sprite sprite;

    public SpriteAux(Sprite sprite, String name) {
        this.sprite = sprite;
        this.name = name;       
    }

}
因此,创建包含精灵和名称的新对象时,我们可以获得并比较名称:

private Sprite sprGuy;
private Sprite sprBoss;

sprGuy  = atlas.createSprite("guy");
sprBoss  = atlas.createSprite("boss");

SpriteAux a = new SpriteAux(sprGuy, "guy");
SpriteAux b = new SpriteAux(sprGuy, "guy");
SpriteAux c = new SpriteAux(sprBoss, "boss");

if (a.name.equals(b.name)) {                  //This is true!
    System.out.println("a is equal to b");
}

if (a.name.equals(c.name)) {                  //This is false!
    System.out.println("a is equal to c");
}

这是我的新方法:

首先,我创建了这个新类:

public class SpriteAux {

    public String name;
    public Sprite sprite;

    public SpriteAux(Sprite sprite, String name) {
        this.sprite = sprite;
        this.name = name;       
    }

}
因此,创建包含精灵和名称的新对象时,我们可以获得并比较名称:

private Sprite sprGuy;
private Sprite sprBoss;

sprGuy  = atlas.createSprite("guy");
sprBoss  = atlas.createSprite("boss");

SpriteAux a = new SpriteAux(sprGuy, "guy");
SpriteAux b = new SpriteAux(sprGuy, "guy");
SpriteAux c = new SpriteAux(sprBoss, "boss");

if (a.name.equals(b.name)) {                  //This is true!
    System.out.println("a is equal to b");
}

if (a.name.equals(c.name)) {                  //This is false!
    System.out.println("a is equal to c");
}