반응형
요즘 COCOS2D를 공부하고 있다.
COCOS2D 자체가 아이폰용에 맞춰 개발된 것을 안드로이드용으로 추가로 개발된 것이기에 안드로이드용 관련 자료가 별로 없다. 그래서 나도 아이폰용 강좌나 자료를 보고 공부했다.
기본적인 개념을 알고나면 다른 엔진에 비해 쉬운 것 같다.
그래서 AndEngine을 쓰려고 하다가 포기하고 자체 엔진을 개발하고 있던 나는 일단 COCOS2D를 이용해서 개발하기로 결심했다.
참고로 여기 좋은 포스팅이 많이 있습니다.
http://self-toeic.tistory.com/
아래는 FPS를 재는 기본 소스이다.
주석에서 나오는 것처럼 FPS를 재려면 asset디렉토리에 fps_images.png가 있어야 한다. 물론 엔진 jar파일도 당연히 포함시켜야 하고 말이다.
}
COCOS2D 자체가 아이폰용에 맞춰 개발된 것을 안드로이드용으로 추가로 개발된 것이기에 안드로이드용 관련 자료가 별로 없다. 그래서 나도 아이폰용 강좌나 자료를 보고 공부했다.
기본적인 개념을 알고나면 다른 엔진에 비해 쉬운 것 같다.
그래서 AndEngine을 쓰려고 하다가 포기하고 자체 엔진을 개발하고 있던 나는 일단 COCOS2D를 이용해서 개발하기로 결심했다.
참고로 여기 좋은 포스팅이 많이 있습니다.
http://self-toeic.tistory.com/
아래는 FPS를 재는 기본 소스이다.
주석에서 나오는 것처럼 FPS를 재려면 asset디렉토리에 fps_images.png가 있어야 한다. 물론 엔진 jar파일도 당연히 포함시켜야 하고 말이다.
package com.tistory.atin;
import org.cocos2d.events.CCTouchDispatcher;
import org.cocos2d.layers.CCLayer;
import org.cocos2d.layers.CCScene;
import org.cocos2d.nodes.CCDirector;
import org.cocos2d.nodes.CCLabel;
import org.cocos2d.opengl.CCGLSurfaceView;
import org.cocos2d.types.CGPoint;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.Window;
import android.view.WindowManager;
public class TestActivity extends Activity {
private CCGLSurfaceView mGLSurfaceView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set the window status, no tile, full screen and don't sleep
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
mGLSurfaceView = new CCGLSurfaceView(this);
setContentView(mGLSurfaceView);
// attach the OpenGL view to a window
CCDirector.sharedDirector().attachInView(mGLSurfaceView);
// no effect here because device orientation is controlled by manifest
CCDirector.sharedDirector().setDeviceOrientation(CCDirector.kCCDeviceOrientationPortrait);
// show FPS
// set false to disable FPS display, but don't delete fps_images.png!!
CCDirector.sharedDirector().setDisplayFPS(true);
// frames per second
CCDirector.sharedDirector().setAnimationInterval(1.0f / 60);
CCScene scene = TemplateLayer.scene();
// Make the Scene active
CCDirector.sharedDirector().runWithScene(scene);
}
@Override
public void onStart() {
super.onStart();
}
@Override
public void onPause() {
super.onPause();
CCDirector.sharedDirector().pause();
}
@Override
public void onResume() {
super.onResume();
CCDirector.sharedDirector().resume();
}
@Override
public void onDestroy() {
super.onDestroy();
CCDirector.sharedDirector().end();
}
static class TemplateLayer extends CCLayer {
CCLabel lbl;
public static CCScene scene() {
CCScene scene = CCScene.node();
CCLayer layer = new TemplateLayer();
scene.addChild(layer);
return scene;
}
protected TemplateLayer() {
this.setIsTouchEnabled(true);
lbl = CCLabel.makeLabel("Hello World!", "DroidSans", 24);
addChild(lbl, 0);
lbl.setPosition(CGPoint.ccp(160, 240));
}
@Override
public boolean ccTouchesBegan(MotionEvent event) {
CGPoint convertedLocation = CCDirector.sharedDirector()
.convertToGL(CGPoint.make(event.getX(), event.getY()));
String title = String.format("touch at point(%.2f, %.2f)",
convertedLocation.x, convertedLocation.y);
if (lbl != null) {
lbl.setString(title);
}
return CCTouchDispatcher.kEventHandled;
}
}
반응형
'Devlopment > Mobile' 카테고리의 다른 글
COCOS2D-X 윈도우에서 신규 솔루션으로 만들기 (0) | 2012.02.03 |
---|---|
COCOS2D-X 설치 (윈도우) (4) | 2012.02.03 |
COCOS2D Android에서 드래그 앤 드랍(Drag & Drop) (2) | 2012.01.31 |
[안드로이드 게임 개발] 1. 시작과 시행착오 (6) | 2012.01.27 |
안드로이드(Android) OnGestureListener 사용법 (0) | 2011.12.27 |
안드로이드에서 OpenGL ES를 사용하는 GLSurfaceView의 기본 골격 (0) | 2011.12.27 |
안드로이드 View, SurffaceView를 사용하는 기본 골격 (0) | 2011.12.18 |
안드로이드 게임 엔진 (1) | 2011.12.01 |
안드로이드 앱 'SD 카드로 이동', '디바이스로 이동' 기능 (0) | 2011.10.14 |
안드로이드 여러 버전의 APK 배포 (0) | 2011.10.14 |