좋아,이
당신은 4 개 주요 측면을 만들 필요가 ... 내가 정확히 당신이 필요로 일하는 것이 내 프로젝트 중 하나에 설정 한 것입니다
- 스레드
(스레드 확장) - - 서피스 뷰 SurfaceViw는
(서피스 뷰 SurfaceView가의 SurfaceHolder.Callback 구현 확장) (그리기 연장) 상호 작용하는 개체
활동의 시작 및 스레드를 생성하는 서피스 뷰 SurfaceView를 생성한다. 보기 또는 스레드에는 그리기/상호 작용하는 개체가 포함될 수 있습니다.이 시점에서 데이터를 저장하는 방법은 사용자가 결정하지만, 클래스 간 커플 링이 가장 적은 디자인을 생각해 내면 가장 쉽습니다. 이 클래스에서
/**
* Processing loop
*/
public void run() {
while (isRunning) {
try {
sleep(25);
} catch (InterruptedException e) {
Log.e("Thread","Thread Interruption");
e.printStackTrace();
}
update();
}
Log.d("Thread", "Game Loop Stopped");
}
/**
* Main processing of the game loop.
*/
private void update() {
handleInput();
updatePhysics();
updateUI();
updateState();
updateAI();
updateAnimations();
updateSound();
updateVideo();
}
당신이 행동의 무리 스레드의 각 반복을 수행하는 update()
방법을 참조하십시오
일단 중지 될 때까지 스레드는 지속적으로 (false로
isRunning
설정) 실행 시작했다.
대부분 관심있는 방법은 handleInput
, updateUI
및 입니다.
handleInput
에서는 정보 처리에 필요한 데이터를 얻기 위해 SurfaceView에 대한 콜백을 수행합니다. 내 handleInput
은 SurfaceView 클래스의 onTouchEvent
에서 MotionEvent
(SurfaceHolder.OnCallBack 인터페이스를 사용할 때 구현 됨)을 그냥 잡았다는 점에서 상당히 간단합니다.
updateUI
방법은 우리가 각 하나에 캔버스 객체를 통과하는 draw
메서드를 호출하는 것을 볼 수는 각 개체와 Canvas
을 그립니다 재, 또는 서피스 뷰 SurfaceView의 update
여기
public void update(List<Actor> actors) {
Canvas canvas = null;
try {
canvas = surface.lockCanvas();
synchronized (surface) {
//Blank the Canvas
for (int i = 0; i < actors.size(); i++) {
actors.get(i).draw(canvas);
}
}
} catch (NullPointerException e) {
e.printStackTrace();
} finally {
if (canvas != null) {
surface.unlockCanvasAndPost(canvas);
}
}
}
풍선 호출하여 상호 작용 가능한 객체. 위의 코드에서 광산 "액터"를 호출했습니다. draw
을 구현하는 방법은 당신에게 달려 있지만, 많은 canvas.drawBitmap()
기능을 사용하는 것처럼 들립니다.
스레드의 updatePhysics
메서드로 돌아가서 개체를 화면에 그리기 전후에 개체를 업데이트하는 데 사용하려고합니다.당신은 풍선을 치기로 결정한 후 화면에서 X 및/또는 Y 위치를 변경하거나 이동 방향을 변경하고 싶을 것입니다. handleInput
.
그것의 아주 열심히는 StackOverflow의 응답에 잘 설명합니다. 정말로 원한다면 이번 주말에 더 많은 정보를 제공하고 외부에서 게시 할 수 있습니다. (그림 예제, 구조 및 데이터 흐름과 같은 다른 정보 중에서 UML 클래스 다이어그램을 제공 할 수 있습니다.)
알려 주시기 바랍니다. 만약 당신이 더 많은 도움이 될 수 있습니다!이 모든 작품이 아니라는 점을 유의하십시오. 나는 기본적인 안드로이드 게임 구조에 대한 온라인 자습서를 많이 사용했지만 참조를 제공 할 수있는 링크가 지금은 없습니다.
난 돈 ' 안드로이드 게임 튜토리얼에 대한 전체 설명을 구글에 올리려면 시간이 필요합니다. 풍선 객체에 업데이트 명령을 실행 한 다음 캔버스에 그리기 명령을 호출하는 스레드를 만들어야합니다. 많은 튜토리얼이 있습니다. 사용 가능하며 도움을 받아야합니다. 나중에 코드를 게시 할 수 있습니다. 나중에 내게 필요한 많은 작업을 사용하는 프로젝트에서. – Grambot
확인. 몇 가지 코드에 대해 고맙게 생각합니다. – jumper0k