Hôm nay mình hướng dẫn các bạn sử dụng ticker text 1 loại text có thể bao gồn rất nhiều hiệu ứng khác nhau như là xoay trong , phóng to , thu nhỏ, hiện từng chữ 1 ... cho tới hết text ,,, v,vv
Video hướng dẫn : (like và ấn G+ ủng hộ mình nha!)
Code :
package com.example.demogameandengine;
import java.util.concurrent.CountDownLatch;
import javax.microedition.khronos.opengles.GL10;
import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.modifier.AlphaModifier;
import org.anddev.andengine.entity.modifier.ParallelEntityModifier;
import org.anddev.andengine.entity.modifier.RotationModifier;
import org.anddev.andengine.entity.modifier.ScaleModifier;
import org.anddev.andengine.entity.modifier.SequenceEntityModifier;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.ColorBackground;
import org.anddev.andengine.entity.text.ChangeableText;
import org.anddev.andengine.entity.text.Text;
import org.anddev.andengine.entity.text.TickerText;
import org.anddev.andengine.entity.util.FPSLogger;
import org.anddev.andengine.opengl.font.Font;
import org.anddev.andengine.opengl.font.FontFactory;
import org.anddev.andengine.opengl.texture.Texture;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.ui.activity.BaseGameActivity;
import org.anddev.andengine.util.HorizontalAlign;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.CountDownTimer;
public class MainActivity extends BaseGameActivity {
private static final int CAMERA_WIDTH = 480;// độ rộng màn hình hiển thị
private static final int CAMERA_HEIGHT = 800;// chiều cao màn hình hiển thị
private Texture mFontTexture;
private Font mFont;
// text custom font
private Texture texture;
private Font font;
// text change
private Texture texturetextchange;
private Font fonttextchange;
// tạo biến đêm
int count = 0;
// text ticker
private Texture mFontTextureTicker;
private Font mFontTicker;
// load game : kick thước camera : khung nhìn ...
//PORTRAIT khởi tạo màn hình xoay ngang
@Override
public Engine onLoadEngine() {
final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
engineOptions.getTouchOptions().setRunOnUpdateThread(true);
return new Engine(engineOptions);
}
// loaad các file nguồn như âm thành hình ảnh
@Override
public void onLoadResources() {
this.mFontTexture = new Texture(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.BLACK);
this.mEngine.getTextureManager().loadTexture(this.mFontTexture);
this.mEngine.getFontManager().loadFont(this.mFont);
FontFactory.setAssetBasePath("font/"); // câu lệnh này để chỉ tới thư mục font chưa các font chữ
// load text font
texture= new Texture(256, 256,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
font = FontFactory.createFromAsset(this.texture, this,"BRUSHSCRIPTSTD.OTF", 45, true, Color.YELLOW);
mEngine.getTextureManager().loadTexture(texture);
mEngine.getFontManager().loadFont(font);
// load text change
texturetextchange= new Texture(512, 512,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
fonttextchange = FontFactory.createFromAsset(this.texturetextchange, this,"LCD.ttf", 32, true, Color.BLUE);
mEngine.getTextureManager().loadTexture(texturetextchange);
mEngine.getFontManager().loadFont(fonttextchange);
// load text ticker
this.mFontTextureTicker = new Texture(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.mFontTicker = new Font(this.mFontTextureTicker, Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC), 24, true, Color.RED);
this.mEngine.getTextureManager().loadTexture(this.mFontTextureTicker);
this.mEngine.getFontManager().loadFont(this.mFontTicker);
}
// scene phương thwucs hiển thị chính
@Override
public Scene onLoadScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());
final Scene scene = new Scene(2);
scene.setBackground(new ColorBackground(0.23f, 1, 0));
// text
Text text= new Text(50 , 50, mFont, "XIN CHÀO ANDENGINE !");
//text.setRotation(90);
scene.attachChild(text);
// text font
Text textcustom = new Text(50, 150, font, "hello every body !");
//textcustom.setRotation(90);
scene.attachChild(textcustom);
// text change
final ChangeableText textchanges = new ChangeableText(50, 300, fonttextchange, " count = "+0+" ");
scene.attachChild(textchanges);
// textchanges.setRotation(90);
CountDownTimer t = new CountDownTimer(30000,100) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
count++;
textchanges.setText(" count = "+count);
}
@Override
public void onFinish() {
}
};
t.start();
// text tickker
String stt = "chào mừng các bạn đã đến với lập trình\n" +
"game android bằng thư viện Andengine" +
"\n\n Chúc các bạn vui vẻ !";
final Text textticker = new TickerText(10, 450, this.mFontTicker,stt, HorizontalAlign.CENTER, 20);
textticker.registerEntityModifier(
new SequenceEntityModifier(
new ParallelEntityModifier(
new AlphaModifier(10, 0.0f, 1.0f),
new ScaleModifier(10, 0.5f, 1.0f)
),
new RotationModifier(5, 0, 360)
)
);
textticker.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
scene.attachChild(textticker);
return scene;
}
// chưa cần quan tâm lắm
@Override
public void onLoadComplete() {
// TODO Auto-generated method stub
}
}
0 comments:
Post a Comment
http://knlaptrinhandroid.blogspot.com/