【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