본문 바로가기

카테고리 없음

Android Infinite Background Scrolling example

Android Infinite Background Scrolling example

게임에서 자주 사용되는 상하 무한 스크롤링 방법의 한 예

다른 구성파일을 이곳을 참고하세요

package game.framework; import android.graphics.*; public class Background extends GraphicObject { int speedX, speedY = 1; int bitmapHeight; public Background(){ super(AppManager.getInstance().getBitmap(R.drawable.field_seamless2)); bitmapHeight = bitmap.getHeight(); } public Background(Bitmap bitmap) { super(bitmap); } public void update() { x+=speedX; y+=speedY; } public void setScrollSpeed(int speedX, int speedY){ this.speedX = speedX; this.speedY = speedY; } @Override public void draw(Canvas canvas) { canvas.drawBitmap(bitmap, 0, y, null); canvas.drawBitmap(bitmap, 0, y-bitmapHeight, null); if(y>bitmapHeight) y -= bitmapHeight;

} }


GameState.java

package game.framework;


import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.util.Log;

import android.view.KeyEvent;

import android.view.MotionEvent;


public class GameState implements IState {


Background background;

GameKeyPad keyPad;

Airplane airplane;

public GameState() {

background = new Background();

keyPad = new GameKeyPad();

airplane = new Airplane();

}


@Override

public void init() {   }


@Override

public void destroy() { }


@Override

public void update() {

background.update();

airplane.update();

}


@Override

public void render(Canvas canvas) {

background.draw(canvas);

airplane.draw(canvas);

keyPad.draw(canvas);

}


@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

return false;

}


@Override

public boolean onTouchEvent(MotionEvent event) {

return keyPad.onTouchEvent(event);

}

}

배경으로 사용된 이미지