【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
分享到:
相关推荐
【LGame学堂003.第三章】 HelloWorld之绘制文本 附件下载 文章地址: http://blog.csdn.net/musicvs/article/details/7530123
【LGame入门学堂002】HelloWorld之搭建环境 教程的附件下载。 文章地址: http://blog.csdn.net/musicvs/article/details/7530117
【LGame学堂008.控件篇】简单控件之LButton 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7542125
【LGame学堂005.精灵传说】简单的精灵 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7530136
【LGame学堂006.精灵传说】我是定时器 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7534424
【LGame学堂004.资源传说】 加载资源的方式 源码下载 文章地址: http://blog.csdn.net/musicvs/article/details/7530129
Android and J2SE Game Engine
LGame-0.3.zip
Java(Android)游戏开发框架LGame-0.2.7发布
*LGame在设计上追求一切从简,能自己实现的,绝不依赖第三方类库(One jar),所以无论是XML或Json解析,TMX地图构建,物理引擎,游戏脚本,抑或二维码构建,都有自己的完整实现(当然,肯定也允许使用第三方的),...
LGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本(测试版添加了C#开发版本)。该引擎除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,该引擎还...
安卓LGame编程详解,初学者的最好的指导资料
LGame-LGame-0.5-Beta-fix1
LGame源码part4
Android游戏开发框架LGame-Android
TD2.3(android塔防游戏,运用了国内的开源游戏引擎LGame).rar
android下的游戏框架LGame的一些游戏实例,包括各种类型游戏,简单易懂!
同时也是是一个高通用性的游戏框架,作为支持Java桌面游戏以及网页游戏开发的全功能引擎,LGame无论对画面绘制、精灵碰撞、特效渲染、窗体组件,还是XML操作,文本数据库操作,HTTP操作,日志操作等都提供有完善的...
在官网找到呢,很有用的android游戏开发包
内含LGame-Android-Physics-0.2.9.jar,LGame-Android-Core-0.2.9.jar,还有一些运用的实例