Java 如何让精灵在Android中从gameView的边缘反弹?
到目前为止,我一直在尝试反转速度,所以理论上他们应该回到自己身上,但事实并非如此Java 如何让精灵在Android中从gameView的边缘反弹?,java,android,sprite,Java,Android,Sprite,到目前为止,我一直在尝试反转速度,所以理论上他们应该回到自己身上,但事实并非如此 public void update() { if (x > gameView.getWidth() - bmp_width - xSpeed){ xSpeed = xSpeed * -1; ySpeed = ySpeed * -1; } if (y > gameView.getHeight() - bmp_height - ySpeed){
public void update() {
if (x > gameView.getWidth() - bmp_width - xSpeed){
xSpeed = xSpeed * -1;
ySpeed = ySpeed * -1;
}
if (y > gameView.getHeight() - bmp_height - ySpeed){
xSpeed = xSpeed * -1;;
ySpeed = ySpeed * -1;;
}
if(x + xSpeed < 0){
x = 0;
xSpeed = 0;
ySpeed = -5;
}
if(y + ySpeed < 0){
y = 0;
xSpeed = 5;
ySpeed = 0;
}
x = x + xSpeed;
y = y + ySpeed;
}
public void update(){
如果(x>gameView.getWidth()-bmp_width-xSpeed){
xSpeed=xSpeed*-1;
ySpeed=ySpeed*-1;
}
如果(y>gameView.getHeight()-bmp\u height-ySpeed){
xSpeed=xSpeed*-1;;
ySpeed=ySpeed*-1;;
}
如果(x+x速度<0){
x=0;
xSpeed=0;
y速度=-5;
}
如果(y+y速度<0){
y=0;
xSpeed=5;
y速度=0;
}
x=x+x速度;
y=y+y速度;
}
提前谢谢 试试这样的方法:
public void update() {
x += xSpeed;
y += ySpeed;
if (x >= gameView.getWidth() - bmp_width){
xSpeed = -xSpeed;
x = gameView.getWidth() - bmp_width;
}else if(x <= 0){
xSpeed = -xSpeed;
x = 0;
}
if (y >= gameView.getHeight() - bmp_height){
ySpeed = -ySpeed;
y = gameView.getHeight() - bmp_height;
}else if(y <= 0){
ySpeed = -ySpeed;
y = 0;
}
}
public void update(){
x+=x速度;
y+=y速度;
如果(x>=gameView.getWidth()-bmp\u width){
xSpeed=-xSpeed;
x=gameView.getWidth()-bmp\u width;
}else if(x=gameView.getHeight()-bmp\u height){
ySpeed=-ySpeed;
y=gameView.getHeight()-bmp\u height;
}否则,如果(y尝试以下操作:
public void update() {
x += xSpeed;
y += ySpeed;
if (x >= gameView.getWidth() - bmp_width){
xSpeed = -xSpeed;
x = gameView.getWidth() - bmp_width;
}else if(x <= 0){
xSpeed = -xSpeed;
x = 0;
}
if (y >= gameView.getHeight() - bmp_height){
ySpeed = -ySpeed;
y = gameView.getHeight() - bmp_height;
}else if(y <= 0){
ySpeed = -ySpeed;
y = 0;
}
}
public void update(){
x+=x速度;
y+=y速度;
如果(x>=gameView.getWidth()-bmp\u width){
xSpeed=-xSpeed;
x=gameView.getWidth()-bmp\u width;
}else if(x=gameView.getHeight()-bmp\u height){
ySpeed=-ySpeed;
y=gameView.getHeight()-bmp\u height;
}否则如果(y试着注释你自己的代码并说出每一行应该做什么,你应该能够发现你的错误y注释你自己的代码并说出每一行应该做什么,你应该能够发现你的错误s关闭,谢谢,精灵仍然在x轴上退出屏幕,但不明白为什么,因为y轴的代码是相同的f gameView.getWidth()返回正确的值?它不-也不知道在哪里更改它。游戏宽度(纵向)比高度大,所以我猜这是错误的如此接近,谢谢,精灵仍然在x轴上退出屏幕,但不明白为什么,因为y轴的代码相同。你检查过gameView.getWidth()是否返回正确的值吗?它不-也不知道在哪里更改它。游戏宽度(纵向)比高度大,所以我猜这是错的