Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop_Processing_Pacman - Fatal编程技术网

Java 如何在处理过程中将矩形转换为上一个鼠标坐标

Java 如何在处理过程中将矩形转换为上一个鼠标坐标,java,oop,processing,pacman,Java,Oop,Processing,Pacman,我是java的新手,我正在制作一个蛇游戏。我的下一步是在蛇吃东西的时候给它添加一个矩形。我现在的想法是,我想添加一个相同的矩形,它被转换到(mouseX,mouseY)的前一个位置。至少,将前一个矩形平移一段距离,但鼠标的方向与前一个矩形相同,以“跟随”前面的块。我不知道如何去做,但这里是我的代码到目前为止 //蛇 虚空蛇(){ rect(mouseX,mouseY,10,10); } 蛇类{ //变数 内伦; int wid; int xcord; int ycord; //建造师 蛇(整数x

我是java的新手,我正在制作一个蛇游戏。我的下一步是在蛇吃东西的时候给它添加一个矩形。我现在的想法是,我想添加一个相同的矩形,它被转换到(mouseX,mouseY)的前一个位置。至少,将前一个矩形平移一段距离,但鼠标的方向与前一个矩形相同,以“跟随”前面的块。我不知道如何去做,但这里是我的代码到目前为止

//蛇
虚空蛇(){
rect(mouseX,mouseY,10,10);
}
蛇类{
//变数
内伦;
int wid;
int xcord;
int ycord;
//建造师
蛇(整数x,整数y,整数len,整数wid){
this.len=len;
this.wid=wid;
这个.xcord=x;
这个.ycord=y;
rect(xcord、ycord、wid、len);
}
//清屏
无效更新(){
背景(255);
矩形模式(中心);
rect(mouseX、mouseY、wid、len);
}
}
等级食品{
//变数
int xcord;
int ycord;
int wid;
内伦;
//建造师
食物(){
this.xcord=int(随机(宽度-5));
this.ycord=int(随机(高度-5));
这个wid=10;
这个.len=10;
rect(xcord、ycord、wid、len);
}
//更新食物位置
无效更新(){
如果((mouseX>xcord)和&(mouseXycord)和&(mouseY
您可以创建两个变量

float pMouseX = mouseX;
float pMouseY = mouseY;
然后,在draw中,更新snake后,更新这些变量:

s.update
pMouseX = mouseX;
pMouseX = mouseY;

大于2个矩形,而不是单个变量,考虑使用O../P> 数组基本上是一种在一个变量中存储多个变量的方法。 ArrayList类似,但没有设置大小。这意味着您可以继续向ArrayList添加元素,而这是使用数组无法做到的

您可以像这样声明这样的ArrayList:

ArrayList<float[]> arrayList = new ArrayList<float[]>(); //each element of the ArrayList is an array, which contains an x and y position
for (int i = arrayList.length - i; i > 0; i++) { //you need to go through the array backwards, because otherwise, for each element, you end up changing the value it is supposed to get, which results in all elements having the same value.
   arrayList[i] = arrayList[i - 1]; 
}
arrayList[0] = new float[]{mouseX, mouseY}

您希望它如何跟随,只是“沿着链接到的另一个多维数据集的方向”或更像“沿着与您跟随的另一个多维数据集完全相同的路径”??