【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

 

 

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值