ここまできてやっとHelloWorld。
1.プロジェクトにビットマップフォントを追加
・asset/fontフォルダを作成
・ビットマップフォント(font.fnt,font_0.png)をコピー
![]() |
| フォントをコピー |
こんな感じ。
package com.example.andenginetest;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.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.text.Text;
import org.andengine.entity.text.TextOptions;
import org.andengine.opengl.font.BitmapFont;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.HorizontalAlign;
import org.andengine.util.color.Color;
public class MainActivity extends SimpleBaseGameActivity
{
private final int CAMERA_WIDTH = 480;
private final int CAMERA_HEIGHT = 800;
@Override
public EngineOptions onCreateEngineOptions()
{
// 描画範囲のインスタンス化
Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
EngineOptions eo = new EngineOptions(
// タイトルバー非表示
true,
// 縦画面固定
ScreenOrientation.PORTRAIT_FIXED,
// 縦横比保持したまま最大まで拡大
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
// 描画範囲
camera);
return eo;
}
@Override
protected void onCreateResources()
{
}
@Override
protected Scene onCreateScene()
{
Scene scene = new Scene();
// 背景真っ白
scene.setBackground(new Background(Color.WHITE));
// ビットマップフォント読み込み
BitmapFont font = new BitmapFont(
getTextureManager() //TextureManager
, getAssets() //AssetManager
, "font/font.fnt" //フォントの場所を指定
);
font.load();
//テキストのインスタンスを作成
Text text = new Text(
20 //X座標
, 20 //Y座標
, font //フォント
, "Hello World!!" //描画文字列
, 20 //最大文字数
//オプション(左寄せ)
, new TextOptions(HorizontalAlign.LEFT),
getVertexBufferObjectManager()
);
//SceneにTextを追加
scene.attachChild(text);
return scene;
}
}
フォント読み込んでTextインスタンスにして
Sceneにドーン。って感じ。
3.実行
![]() |
| 実行画面 |
おまけ:
ビットマップフォント作った後にfntファイルの1,2行目を修正してないと下記エラー出るよ。
java.lang.NumberFormatException: Invalid int: "1 outline=0"
05-06 18:13:31.879: E/AndEngine(7286): MainActivity.onCreateScene failed. @(Thread: 'GLThread 17752') 05-06 18:13:31.879: E/AndEngine(7286): java.lang.NumberFormatException: Invalid int: "1 outline=0" 05-06 18:13:31.879: E/AndEngine(7286): at java.lang.Integer.invalidInt(Integer.java:138) 05-06 18:13:31.879: E/AndEngine(7286): at java.lang.Integer.parse(Integer.java:375) 05-06 18:13:31.879: E/AndEngine(7286): at java.lang.Integer.parseInt(Integer.java:366) 05-06 18:13:31.879: E/AndEngine(7286): at java.lang.Integer.parseInt(Integer.java:332) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.opengl.font.BitmapFont$BitmapFontInfo.<init>(BitmapFont.java:610) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.opengl.font.BitmapFont.<init>(BitmapFont.java:211) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.opengl.font.BitmapFont.<init>(BitmapFont.java:176) 05-06 18:13:31.879: E/AndEngine(7286): at com.example.andenginetest.MainActivity.onCreateScene(MainActivity.java:62) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateScene(SimpleBaseGameActivity.java:48) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.ui.activity.BaseGameActivity$3.onCreateResourcesFinished(BaseGameActivity.java:169) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateResources(SimpleBaseGameActivity.java:43) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.ui.activity.BaseGameActivity.onCreateGame(BaseGameActivity.java:181) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.ui.activity.BaseGameActivity.onSurfaceCreated(BaseGameActivity.java:110) 05-06 18:13:31.879: E/AndEngine(7286): at org.andengine.opengl.view.EngineRenderer.onSurfaceCreated(EngineRenderer.java:80) 05-06 18:13:31.879: E/AndEngine(7286): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1494) 05-06 18:13:31.879: E/AndEngine(7286): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
疑問:
- TextureManagerって何するやつ
- AssetManagerって何するやつ
- TextOptions何があるの
- VertexBufferObjectManagerって何する奴

