블로그 이미지
SnowyJune

태그목록

공지사항

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

[AndEngine(GLES2)] 환경설정 및 테스트

2012.01.11 15:59 | Posted by SnowyJune

* 공부 중에 정리하는 차원에서 작성한 글이므로, 틀린 부분이 있을 수 있습니다.
   틀린 부분은 지적해 주시면 감사하겠습니다.

AndEngine ?
간단하게 말하면 2D 게임 개발 엔진.
자세한 정보는 밑의 홈페이지의 포럼에 가 보면 있을 듯...

AndEngine 홈페이지 : http://www.andengine.org/

  • https://github.com/nicolasgramlich/AndEngine
  • https://github.com/nicolasgramlich/AndEngineExamples
  • https://github.com/nicolasgramlich/AndEngineTexturePackerExtension
  • https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
  • https://github.com/nicolasgramlich/AndEngineMultiplayerExtension
  • https://github.com/nicolasgramlich/AndEngineSVGTextureRegionExtension
  • https://github.com/nicolasgramlich/AndEngineLiveWallpaperExtension
  • https://github.com/nicolasgramlich/AndEngineMODPlayerExtension
  • https://github.com/nicolasgramlich/AndEngineAugmentedRealityExtension
  • https://github.com/nicolasgramlich/AndEngineTest
  •  위의 링크에서 소스 코드를 다운 받아서 하나의 프로젝트를 생성 후, src에 모두 복사 붙여넣기한다. (확인 : 안드로이드 버전 - 2.2, jdk버전 - 1.6) 라이브러리 프로젝트로 사용할 것이므로, Properties - Android - 하단의 Library에 Is Library에 체크한다.
     그런 다음, 작업을 위한 프로젝트에서는 아까 만든 프로젝트를 라이브러리로 참조하도록 하여 사용하면 된다.(오른쪽 클릭 - Properties - Android - 하단의 Libray의 Add에서 전에 만든 프로젝트 선택.)
    Activity 생성 시에는 SimpleBaseGameActivity를 상속 받아서 생성하도록 한다.

    자세한 참조는 http://developer.android.com/guide/developing/projects/projects-eclipse.html

    설명
    Camera
    : 영화 촬영할 때의 카메라를 생각하면 된다.
    전체 Scene이 아니라, 안드로이드 폰 화면에서 보여줄 Scene의 일부분을 결정한다.

    Scene
    : 전체 화면이라고 생각하면 될듯.
    여기에 나타내고 싶은 요소들을 붙여 준다.
    CameraScene/HUD/MenuScene 과 같은 서브 클래스들을 가질 수도 있다.

    onEngineOptions
    : 사용할 AndEngine의 환경 설정 및 카메라 생성.
    현재 까지는 테스트 코드의 2줄을 바꿔 본 적이 없음.

    onCreateResources
    : sprite를 사용할 때, 이미지의 경로 등의 정보를 가져와야 하는데, 이렇게 자원들을 미리 불러 와야 할 경우 해당 되는 코드를 작성해야 한다.

    onCreateScene
    : 가장 많이 손을 데는 부분일듯.
    Scene을 생성해서 출력 해 줘야 할 Object들을 scene에 붙여 준 다음, 처리 로직을 구성하고 마지막으로 scene를 리턴한다.

    테스트 코드
    : 까만 화면만 출력해 주는 코드.
                Bold체로 표시한 부분만 작성해 주면 된다.

    import org.andengine.engine.camera.ZoomCamera;
    import org.andengine.engine.options.EngineOptions;
    import org.andengine.engine.options.EngineOptions.ScreenOrientation;
    import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
    import org.andengine.entity.scene.Scene;
    import org.andengine.entity.scene.background.Background;
    import org.andengine.entity.util.FPSLogger;
    import org.andengine.ui.activity.SimpleBaseGameActivity;

    public class DrawActivity extends SimpleBaseGameActivity {
     static final int CAMERA_WIDTH = 480;
     static final int CAMERA_HEIGHT = 320;

     
     private ZoomCamera fzoomCamera;


     public EngineOptions onCreateEngineOptions() {
      // TODO Auto-generated method stub
      fzoomCamera = new ZoomCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
      return new EngineOptions(true,ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),fzoomCamera);

     }


     @Override
     protected void onCreateResources() {

     }

     @Override
     protected Scene onCreateScene() {
      // TODO Auto-generated method stub
      mEngine.registerUpdateHandler(new FPSLogger());
      final Scene scene = new Scene();
      scene.setBackground(new Background(1,1,1));
     
      return scene;

     }
    }


    * 테스트는 왠만하면 디바이스로 해 보길 바랍니다.
       저 같은 경우에는 AVD에서 동작 안하더군요. 느려서 AVD로 테스트 하기도 짜증나겠지만. 

    -------------------------------

    만약 Sprite나 선을 Scene에 추가할 경우, org.andengine.opengl.vbo.HighPerformanceVertexBufferObject.onBufferData....
    로 시작하는 에러가 찍히고 Andengine라이브러리를 찾을 수 없다고 나올 경우,
    Andengine프로젝트에 libs (armeabi, armeabi-v7a, x86)폴더가 제대로 포함되어 있는지를 체크해 본다.

    신고

    티스토리 툴바