`
mmdev
  • 浏览: 12959826 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【LGame入门学堂003.第三章】 HelloWorld之绘制文本

 
阅读更多

【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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics