繁体   English   中英

使图像在android中掉落

[英]Making images drop in android

我正在制作一个需要显示一些不同图像的android游戏。 我需要一种方法,该方法可以继续从可绘制目录中的资源生成图像,然后将图像从屏幕顶部放到底部。 我还需要每个图像都应该有一个id“ image-1”“ image-2”,一旦将更多图像创建为整数,索引号就会更高。 我还需要在屏幕顶部的不同位置生成它们,并以指定的速度放下它们。 一旦他们触底,我想要一个像这样执行的方法:

public void touchedGround() {
//My code
}

到目前为止,我正在使用此代码:

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class GameScreenActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gamescreen);
    generateParachuters(savedInstanceState);
}

private void generateParachuters(Bundle icicle) {
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(), "generating images", 10).show();
}
}

我知道一种实现方法,但是它需要比您可能正在寻找的代码更多的代码。 但是,嘿,这去了。

  1. 为您坠落的物体创建一个类,我猜这是一个Parachuter 此类将具有X和Y变量以跟踪其在屏幕上的位置。 然后,您可以使用一个tick方法,该方法将使Y变量的下降速度变快。 如果需要,还可以让他们跟踪整数ID。

  2. 创建一个将保存Parachuter对象的列表。 我使用一个ArrayList。 这样,您可以在需要时创建Parachuter并将其添加到列表中。 循环浏览列表以绘制每个。

  3. 您需要一些东西来绘制Parachuter 我个人使用SurfaceView Canvas

  4. 您将需要一个循环动画。 遍历,每次绘制Parachuter并在每一个上调用tick

  5. 在循环过程中,您可以检查每个Parachuter的位置。 如果其位置超出Canvas.getHeight() ,则从列表中删除图像。

好吧,那儿有很多。 问我是否需要进一步说明。

更新这是一个可以正常工作的示例

更新2

//Check right edge of screen
for (int i = 0; i < parachuters.size(); i++)
{
    if (parachuters.get(i).getX() > canvas.getWidth())
        //Do whatever it is you want
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM