迭代生成动画 - android

时间:2017-07-30 12:16:46

标签: java android animation iteration

我正在尝试制作TapTapRevenge式游戏,但我无法生成音符动画。我有一个笔记课:

class Note {
    int hitTime;
    int y;
    int pos;
    int iniX;
    Bitmap img;
}

我从2D array这样的笔记中做笔记:

int[][] rawNotes = {{0, 1000},{1,1000},{2,1100},{0,1250},{1,1500}};

使用以下方法

public void makeNotes(int[][] in) {
    WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
    DisplayMetrics metrics = new DisplayMetrics();
    wm.getDefaultDisplay().getMetrics(metrics);
    int sW = metrics.widthPixels;
    for(int i=0;i<in.length;i++) {
        notes[i] = new Note();
        notes[i].hitTime = in[i][1];
        Bitmap temp = BitmapFactory.decodeResource(getResources(),R.drawable.ball);
        notes[i].img = Bitmap.createScaledBitmap(temp, sW/10, sW/10, false);
        switch (in[i][0]) {
            case 0 :
                notes[i].iniX = sW/3 - sW/20;
                break;
            case 1:
                notes[i].iniX = sW/2 - sW/20;
                break;
            case 2:
                notes[i].iniX = (2 * sW/3) - sW/20;
                break;
        }
    }
}

我在我的onDraw课程中使用SurfaceView方法的以下几行更新了他们的位置,

    for (Note note : notes) {
        super.onDraw(canvas);
        canvas.drawBitmap(bgr,0,0,null);
        canvas.drawBitmap(note.img,note.iniX,note.y,null);
        note.y = (1500 + (songTime - note.hitTime));
    }

背景只是我的背景图片。

出于某种原因,只显示我的array笔记中的第二项(在这种情况下为{1, 1000})。我不知道我在哪里出错了。

由于

0 个答案:

没有答案