Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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中从数组中显示的对象_Java_Arrays_Object_Processing - Fatal编程技术网

java中从数组中显示的对象

java中从数组中显示的对象,java,arrays,object,processing,Java,Arrays,Object,Processing,我正在制作一个类似于agar.io的游戏,在这个游戏中,一个斑点会四处游走,吃点东西。我在我的手机上做,你用手指控制斑点来收集点。我注意到,当我收集一个点时,一些随机的其他点也会出现。我调试了一些,发现除非你按照点添加到数组中的顺序收集点,否则任何数组顺序较低的点都会被销毁。示例:如果收集了添加到第7个数组中的点,则点0-6将消失,位如果收集了1,则2,依此类推,则其他点将不会随机消失。我创建了另一个更简单的示例来探讨这个问题。现在它是一个有5个圆圈的简单屏幕。您可以拾取和拖放任何圆。我注意到同

我正在制作一个类似于agar.io的游戏,在这个游戏中,一个斑点会四处游走,吃点东西。我在我的手机上做,你用手指控制斑点来收集点。我注意到,当我收集一个点时,一些随机的其他点也会出现。我调试了一些,发现除非你按照点添加到数组中的顺序收集点,否则任何数组顺序较低的点都会被销毁。示例:如果收集了添加到第7个数组中的点,则点0-6将消失,位如果收集了1,则2,依此类推,则其他点将不会随机消失。我创建了另一个更简单的示例来探讨这个问题。现在它是一个有5个圆圈的简单屏幕。您可以拾取和拖放任何圆。我注意到同样的问题,你拖动一个圆圈,其他圆圈随机消失,即使没有代码让它们消失。我的代码如下:

// Drag n' Drop //

Objects[] box;
int objCount = 5;

void setup() {
    box = new Objects[objCount];

    for (int i = 0; i < objCount; i++){
        box[i] = new Objects(random(displayWidth),random(displayHeight),200);
    }
}

void draw() {
    background(170);

    for (Objects boxes : box) {
        boxes.display();
        boxes.dragging();
    }
}

class Objects {
    float x, y;
    float s;

    Objects(float tempX, float tempY, int tempS) {
        x = tempX;
        y = tempY;
        s = tempS;
    }

    void display() {
        ellipse(x, y, s, s);
    }

    void dragging() {
        if (dist(x, y, mouseX, mouseY) < 500) {
            x = mouseX;
            y = mouseY;
            s = 300;
        }
    }
}
//拖放//
对象[]框;
int objCount=5;
无效设置(){
box=新对象[objCount];
for(int i=0;i
我相信我的问题可能在于我用来调用box对象的display函数的循环,但是我找不到任何其他方法来让它工作。非常感谢您对我们的任何帮助。谢谢你抽出时间。PS Im使用处理来运行此代码

  • 凯尔顿

首先,我要感谢您,因为我以前从未玩过处理,您启发我下载它

我想指出一些错误的地方,也许能引导你朝着正确的方向前进。主要问题在于您的
拖动()方法。
实际上并没有删除对象,您只是将对象移动到鼠标位置,给您一种删除对象的错觉

不管怎样,正如您所说,您正在创建游戏Agar.io,我认为您自己应该有自己的
Blob
。为了我的Java大脑,我已经将你所谓的
对象
切换为
blob

首先,设置

import java.util.*;
public static final int BLOB_COUNT = 10;
List<Blob> blobs = new ArrayList<Blob>();

// this is our blob, the one that displays in the middle of the screen
Blob myBlob = new Blob(mouseX, mouseY, 50);

void setup() {
    size(1000, 500);
    for (int i = 0; i < BLOB_COUNT; i++){
        blobs.add(new Blob(random(displayWidth/2),random(displayHeight/2),50));
    }
}
注意,我们想将blob更新到鼠标的当前位置

最后,Blob类

class Blob {
    float x, y;
    float size;

    Blob(float tempX, float tempY, int size) {
        this.x = tempX;
        this.y = tempY;
        this.size = size;
    }

    void display() {
        ellipse(x, y, size, size);
    }


    void dragging() {
        if (dist(x, y, mouseX, mouseY) < myBlob.getSize()/2) {
            myBlob.setBlobSize(25);
            this.x = random(displayWidth/2);
            this.y = random(displayHeight/2);
        }
    }

    void setX(float x){
      this.x = x;
    }

    void setY(float y) {
      this.y = y;
    }

    void setBlobSize(float size) {
       this.size += size; 
    }

    float getSize() {
      return this.size;
    }

}
类Blob{
浮动x,y;
浮子大小;
Blob(浮点速度、浮点速度、整数大小){
这个.x=tempX;
这个.y=tempY;
这个。大小=大小;
}
无效显示(){
椭圆(x,y,大小,大小);
}
无效拖动(){
if(dist(x,y,mouseX,mouseY)

现在,我们在dragging()方法中检查blob是否接近我们的blob,如果是,我们希望消耗该blob(增加我们的质量),然后我们希望该blob重新生成到另一个位置,这就是大多数Agar.io游戏的工作方式,但当然这完全取决于您。还有更精确的方法来计算水滴的面积,并确定两个水滴是否在接触距离内,但我将把数学留给你

首先,我要感谢你,因为我以前从未玩过处理,是你启发我下载它的

我想指出一些错误的地方,也许能引导你朝着正确的方向前进。主要问题在于您的
拖动()方法。
实际上并没有删除对象,您只是将对象移动到鼠标位置,给您一种删除对象的错觉

不管怎样,正如您所说,您正在创建游戏Agar.io,我认为您自己应该有自己的
Blob
。为了我的Java大脑,我已经将你所谓的
对象
切换为
blob

首先,设置

import java.util.*;
public static final int BLOB_COUNT = 10;
List<Blob> blobs = new ArrayList<Blob>();

// this is our blob, the one that displays in the middle of the screen
Blob myBlob = new Blob(mouseX, mouseY, 50);

void setup() {
    size(1000, 500);
    for (int i = 0; i < BLOB_COUNT; i++){
        blobs.add(new Blob(random(displayWidth/2),random(displayHeight/2),50));
    }
}
注意,我们想将blob更新到鼠标的当前位置

最后,Blob类

class Blob {
    float x, y;
    float size;

    Blob(float tempX, float tempY, int size) {
        this.x = tempX;
        this.y = tempY;
        this.size = size;
    }

    void display() {
        ellipse(x, y, size, size);
    }


    void dragging() {
        if (dist(x, y, mouseX, mouseY) < myBlob.getSize()/2) {
            myBlob.setBlobSize(25);
            this.x = random(displayWidth/2);
            this.y = random(displayHeight/2);
        }
    }

    void setX(float x){
      this.x = x;
    }

    void setY(float y) {
      this.y = y;
    }

    void setBlobSize(float size) {
       this.size += size; 
    }

    float getSize() {
      return this.size;
    }

}
类Blob{
浮动x,y;
浮子大小;
Blob(浮点速度、浮点速度、整数大小){
这个.x=tempX;
这个.y=tempY;
这个。大小=大小;
}
无效显示(){
椭圆(x,y,大小,大小);
}
无效拖动(){
if(dist(x,y,mouseX,mouseY)

现在,我们在dragging()方法中检查blob是否接近我们的blob,如果是,我们希望消耗该blob(增加我们的质量),然后我们希望该blob重新生成到另一个位置,这就是大多数Agar.io游戏的工作方式,但当然这完全取决于您。还有更精确的方法来计算水滴的面积,并确定两个水滴是否在接触距离内,但我将把数学留给你

你能添加处理销毁对象的代码吗