Java 如果对象与同一对象碰撞
我不知道如何与同一ArrayList中的同一对象发生碰撞,但在lbgdx中却不知道如何与该对象发生碰撞。有可能吗?我该怎么做 如何创建对象:Java 如果对象与同一对象碰撞,java,arraylist,libgdx,collision,Java,Arraylist,Libgdx,Collision,我不知道如何与同一ArrayList中的同一对象发生碰撞,但在lbgdx中却不知道如何与该对象发生碰撞。有可能吗?我该怎么做 如何创建对象: private static List<Tree> objects = new ArrayList<Tree>(); for (int i = 0; i<400 ; i++ ) { objects.add(new Tree()); } 它们随机地在玩家周围繁殖,有时它们彼此领先 树类: p
private static List<Tree> objects = new ArrayList<Tree>();
for (int i = 0; i<400 ; i++ ) {
objects.add(new Tree());
}
它们随机地在玩家周围繁殖,有时它们彼此领先
树类:
public class Tree {
public TextureRegion sprite;
public Vector2 position;
private int x, y, varx, vary;
public int size;
private Random r;
public boolean injunglex, injungley = false;
public int myLevel;
public Rectangle objrect, objrectUP;
public Rectangle playerrect;
public boolean active = false;
private int random, tolis=700;
public Tree() {
GameRender.medis++;
size = GameRender.tilesize*5;
position = new Vector2(x, y);
r = new Random();
random = r.nextInt(2);
int zenkas = r.nextInt(2);
if(AssetLoader.load){
position.y = AssetLoader.getInt("treey"+GameRender.medis);
position.x = AssetLoader.getInt("treex"+GameRender.medis);
}else{
position.y = getPositionY();
position.x = getPosition();
while(position.y>GameRender.playery-100&&position.y<GameRender.playery+100
&&position.x>GameRender.playerx-100&&position.x<GameRender.playerx+100){
position.y = getPositionY2();
position.x = getPosition2();
}
}
}
public int getPosition() {
int x;
int zenkasx = r.nextInt(2);
int renkam = r.nextInt(2);
int renkam2;
if(renkam==1){renkam=r.nextInt(50); renkam2=0;} else {renkam=0; renkam2=r.nextInt(50);}
if(zenkasx==0){
x = GameRender.playerx+renkam+(r.nextInt(tolis));
}else x = GameRender.playerx-renkam2-(r.nextInt(tolis));
return x;
}
public int getPosition2() {
int x;
int zenkasx = r.nextInt(2);
int renkam = r.nextInt(2);
int renkam2;
if(renkam==1){renkam=0; renkam2=+r.nextInt(100);} else {renkam=r.nextInt(100); renkam2=0;}
if(zenkasx==0){
x = GameRender.playerx+renkam+(r.nextInt(tolis));
}else x = GameRender.playerx-renkam2-(r.nextInt(tolis));
return x;
}
public int getPositionY() {
int x;
int zenkasx = r.nextInt(2);
int renkam = r.nextInt(2);
int renkam2;
if(renkam==1){renkam=r.nextInt(50); renkam2=0;} else {renkam=0; renkam2=r.nextInt(50);}
if(zenkasx==0){
x = GameRender.playery+renkam+(r.nextInt(tolis));
}else x = GameRender.playery-renkam2-(r.nextInt(tolis));
return x;
}
public int getPositionY2() {
int x;
int zenkasx = r.nextInt(2);
int renkam = r.nextInt(2);
int renkam2;
if(renkam==1){renkam=100; renkam2=+r.nextInt(200);} else {renkam=r.nextInt(200); renkam2=100;}
if(zenkasx==0){
x = GameRender.playery+renkam+(r.nextInt(tolis/3));
}else x = GameRender.playery-renkam2-(r.nextInt(tolis/3));
return x;
}
private TextureRegion getSprite() {
int medis = r.nextInt(3)+1;
if(medis==1) sprite = AssetLoader.tree1;
else if(medis==2) sprite = AssetLoader.tree2;
else if(medis==3) sprite = AssetLoader.tree3;
return sprite;
}
public void createMe() {
GameRender.batch.draw(sprite, position.x, position.y, size, size);
}
}你的问题不清楚
我想知道有没有一种方法可以在一棵树的周围创建一个矩形,如果这个矩形与另一棵树重叠,那就是:做点什么 但我会尽我所能: 您可以在树上创建两个框。要做到这一点,请选中类似“如果object.box与otherObject.box重叠” 但是,您也可以通过使用双[][],然后将其与坐标一起存储来获得更详细的碰撞框 基本上,您可以将坐标放在双精度[][]中,然后可以检查另一棵树是否在双精度[][]中,如果在双精度[][]中,则它们发生了碰撞。 可以将坐标设置为1,将空气设置为0
例如,如果double[treeX][treeY][treeZ]==1,在这里进行冲突处理。树的equals方法是什么样子的?如果你问的是这个问题,那么添加了树类。我想知道的是,有一种方法可以在树的周围创建一个矩形,如果这个矩形与另一棵树重叠,那么相同的矩形:做点什么。是的,这是可能的。如果你想知道怎么做,那就问吧。