Java 笛卡尔坐标的应用
玩家在0坐标(x=0,y=0)下开始游戏。当用户点击屏幕时,返回鼠标点击的坐标(x1,y1)。现在玩家必须从当前位置A(0.0)移动到B(x1,y1)。但是,例如x1>y1,因此在我的while循环中,y将比x早得到y=(y1-1)的值 我需要做什么才能使x和y同时获得最终值x=(x-1)y=(y1-1)Java 笛卡尔坐标的应用,java,Java,玩家在0坐标(x=0,y=0)下开始游戏。当用户点击屏幕时,返回鼠标点击的坐标(x1,y1)。现在玩家必须从当前位置A(0.0)移动到B(x1,y1)。但是,例如x1>y1,因此在我的while循环中,y将比x早得到y=(y1-1)的值 我需要做什么才能使x和y同时获得最终值x=(x-1)y=(y1-1) while(cont){ if(x1 > x){ x++; }else if(x1 < x){ x--; } if(
while(cont){
if(x1 > x){
x++;
}else if(x1 < x){
x--;
}
if(y1 > y){
y++;
}else if(y1 < y){
y--;
}
frame.repaint();
sleep(); // Thread.sleep(200)
}
while(续){
如果(x1>x){
x++;
}else if(x1y){
y++;
}否则如果(y1
我想你想要的是这样的:(提供你/OP/没有给我们的SSCCE缺少的代码)
我甚至不知道我能在这里解释什么,因为a)再简单不过了,b)我仍然不确定整个问题是关于什么的。呃。。。不计算。你的问题是“我如何将我的人直线移动到目的地?”这只是y代码的一部分。。。我的问题是“我怎样才能让一个人以扭曲、弯曲的线条到达目的地”。还有为什么我的问题会得到这么多反对票?因为不清楚你在问什么。@user2865835 a)你没有提供SSCCE(),b)你的问题定义充其量是模糊的,c)这个问题没有显示出你有任何真正的研究努力。目前,答案是“要得到x=(x-1)y=(y1-1)的值,使用
x-;
和y=y1-1;
…此外,“要让一个家伙在扭曲的曲线中移动”,你应该给他一些烈性饮料-最好是苦艾酒。
// float x0, y0; // old position
// float x1, y1; // requested position
// float x = x0, y = y0; // current position
// float total_steps; // total steps to split the move between
// float step_x = ( x1 - x0 ) / total_steps;
// float step_y = ( y1 - y0 ) / total_steps;
while( Math.round(x) != x1 ) {
x += step_x;
y += step_y;
frame.repaint();
sleep(); // Thread.sleep(200)
}