gpt4 book ai didi

Java:两个具有相同速度的背景相互重叠

转载 作者:行者123 更新时间:2023-12-01 18:35:13 25 4
gpt4 key购买 nike

这是我的第一个问题,我会尽力使其尽可能清楚。如果之前有人问过类似的问题,请原谅我(我查了一下,但什么也没发现)。

我正在尝试用 java 创建我的第一个 Android 应用程序。这是一款小游戏,角色位于屏幕左侧(横向模式),背景从右到左,给人一种运动的印象。背景的速度应该是恒定的。我使用了一个背景类,如下所示:

public class Background {

int x=0, y=0;
Bitmap background;

Background(int screenX, int screenY, Resources res){

background = BitmapFactory.decodeResource(res, R.drawable.background);
background = Bitmap.createScaledBitmap(background, screenX, screenY, false);
}
}

然后在 GameView 类中创建 2 个背景对象

private Background background1, background2;

在构造函数中:

background1 = new Background(screenX, screenY, getResources());
background2 = new Background(screenX, screenY, getResources());

//both backgrounds are the same picture

background2.x = screenX;

paint= new Paint();

最后:

private void update(){
background1.x -=2 * screenRatioX;
background2.x -=2 * screenRatioX;
//both have the same speed

if (background1.x + background1.background.getWidth()<0){
background1.x = screenX;
// to make it reappear on the right side when it vanishes on the left side
}
if (background2.x + background2.background.getWidth()<0){
background2.x = screenX;
}
}

我希望它是清楚的,并且有人能够帮助我。

最佳答案

编辑:我实际上通过给background2一个相对于background1位置的x位置来解决这个问题

private void update(){
background1.x =(int)(background1.x - (2 * screenRatioX));
if(background1.x < background2.x) {
background2.x = background1.x + background1.background.getWidth();}
//(int)(background2.x - (2 * screenRatioX));
else {background2.x =background1.x-background1.background.getWidth();




}

if (background1.x + background1.background.getWidth()<0){
background1.x = background2.x + background2.background.getWidth();

}
if (background2.x + background2.background.getWidth()<0){
background2.x = background1.x+background1.background.getWidth();
}

我仍然有兴趣了解为什么以前会发生这种情况。谢谢大家

关于Java:两个具有相同速度的背景相互重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60074430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com