【LG003.第三章】HelloWorld之绘制文本
关键字:LGame 入门 环境 文本
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址:http://blog.csdn.net/musicvs/article/details/7530117
最终效果:
这个很简单的,看Activity的代码:
public class LGameStudyActivity extends LGameAndroid2DActivity {
@Override
public void onGamePaused() {
}
@Override
public void onGameResumed() {
}
@Override
public void onMain() {
/* 设置游戏是否横屏 */
this.initialization(true);
/* 给Activity赋予一个画面,有点类似于View */
this.setScreen(new ScreenExample());
/* 这个厉害了,指定游戏的帧速率,每秒30帧 */
this.setFPS(30);
/* 是否显示游戏帧数(当然显示喇) */
this.setShowFPS(true);
/* 不显示Logo(这个没试过显示,先不管,我们要的是HelloWorld) */
this.setShowLogo(false);
/* OK,一切准备就绪,显示游戏画面 */
this.showScreen();
}
}
注:这个是由官方文档里的一个例子里修改得到的代码。
引擎自己封装了一个Activity,叫做LGameAndroid2DActivity。
代码很简单,我已经注释得很清楚了~希望大家能看懂我的文字~
这里啰嗦一下:
为什么要在onMain()函数里做初始化呢?其实没有为什么,我们完全可以在onCreate()函数里初始化的,不信?看看LGameAndroid2DActivity类里onCreate函数的源码:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
LSystem.gc();
Log.i("Android2DActivity", "LGame 2D Engine Start");
// 构建整个游戏使用的最底层FrameLayout
this.frameLayout = new FrameLayout(LGameAndroid2DActivity.this);
// 当此项为True时,Back键无法退出游戏(默认为False)
this.isBackLocked = false;
// 当此项为False时,Activity在onDestroy仅关闭当前Activity,而不关闭整个程序(默认为True)
this.isDestroy = true;
this.onMain();
}
嘿嘿,其它的代码不管,看最后那行:this.onMain();
好了,很清楚了吧?实际上还是调用了onCreate函数进行初始化操作的,最后调用了onMain函数。
那咱们就在onMain()函数里做初始化操作吧,一样的。
现在来看看咱们的Screen,画面:
public class ScreenExample extends Screen {
public ScreenExample() {
}
/*
* 官方解释:
* 与J2SE版相同,draw中LGraphics会根据设定的FPS自动刷新,使用上与标准的J2SE
* Graphics以及J2MEGraphics接口没有区别(API为二者的综合)
*/
public void draw(LGraphics g) {
/* 简单吧?就是咱们的canvas.drawColor(Color.GRAY) */
g.drawClear(LColor.gray);
/*
* 来了,我们的最爱——HelloWorld!
* 太简单了,我都不想解释了,绘制"HelloWorld"字符串到屏幕的(100,100)位置
*/
g.drawString("HelloWorld", 100, 100);
}
@Override
public void alter(LTimerContext arg0) {
}
@Override
public void onTouchDown(LTouch arg0) {
}
@Override
public void onTouchMove(LTouch arg0) {
}
@Override
public void onTouchUp(LTouch arg0) {
}
}
注:代码由官方文档中的实例修改。
这个也很简单,在draw函数里加上我们的绘制操作就好了:
1. g.drawClear(LColor.gray); 也就是我们常常做的清屏
2. g.drawString("HelloWorld",100, 100); 和canvas的drawText类似的,实际上就是调用了drawText函数。
OK,运行程序,你会看到HelloWorld~!
这里再啰嗦一下:
在AndroidManifest.xml中配置新的Activity时,一定要加入android:configChanges="orientation|keyboardHidden"
属性,否则游戏无法强制横屏或者竖屏。暂时还不知道原因,以后再研究,我们的宗旨是,先学会使用,再探究原理。
如:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LGameStudyActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
源码下载:http://download.csdn.net/detail/musicvs/4289608
原文第一次发布于Android-Fans论坛:http://www.android-fans.net/thread-1454-1-1.html