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
实现
因此,您正在调用JavaObject
类的默认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");
}