当前位置:  编程技术>移动开发
本页文章导读:
    ▪JAVAME学习札记(2)        JAVAME学习笔记(2) GameCanvas这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力.........
    ▪ JAVAME学习札记(3)        JAVAME学习笔记(3) GameCanvas类提供了基本的游戏用户接口。除了从Canvas继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,比如后备屏幕缓冲和键盘状态查询的能.........
    ▪ MIDP3.0的新增特征介绍       MIDP3.0的新增特性介绍 1.         LIBletLIBlet是一种类似与ActiveX之类的组件技术,以独立的jar文件存在,内部可以包含classes以及资源文件,可以和MIDlet一样通过OTA下载,一旦下载到手机.........

[1]JAVAME学习札记(2)
    来源: 互联网  发布时间: 2014-02-18
JAVAME学习笔记(2)
GameCanvas

这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。



Layer

Layer类代表游戏中的一个可视化元素,例如Sprite或TiledLayer是它的子类;这个抽象类搭好了层(Layer)的基本框架并提供了一些基本的属性,如位置,大小,可视与否。出于优化的考虑,不允许直接产生Layer的子类(不能包外继承)。



LayerManager

对于有着许多Layer的游戏而言,LayerManager通过实现分层次的自动渲染,从而简化了游戏开发。它允许开发者设置一个可视窗口(View Window),表示用户在游戏中可见的窗口; LayerManager自动渲染游戏中的Layer,从而实现期望的视图效果。



Sprite

Sprite又称“精灵”,也是一种Layer,可以显示一帧或多帧的连续图像。但所有的帧都是相同大小的,并且由一个Image对象提供。Sprite通过循环显示每一帧,可以实现任意顺序的动画;Sprite类还提供了许多变换(翻转和旋转)模式和碰撞检测方法,能大大简化游戏逻辑的实现。

TiledLayer


TiledLayer又称“砖块”,这个类允许开发者在不必使用非常大的Image对象的情况下创建一个大的图像内容。TiledLayer有许多单元格构成,每个单元格能显示由一个单一Image对象提供的一组贴图中的某一个贴图。单元格也能被动画贴图填充,动画贴图的内容能非常迅速地变化;这个功能对于动画显示非常大的一组单元格非常有用,例如一个充满水的动态区域。


在游戏中,某些方法如果改变了Layer,LayerManager,Sprite和TiledLayer对象的状态,通常并不能立刻显示出视觉变化。因为这些状态仅仅存储在对象里,只有当随后调用我们自己的paint()方法时才会更新显示。这种模式非常适合游戏程序,因为在一个游戏循环中,一些对象的状态会更新,在每个循环的最后,整个屏幕才会被重绘。基于轮询也是现在视频游戏的基本结构。



    
[2] JAVAME学习札记(3)
    来源: 互联网  发布时间: 2014-02-18
JAVAME学习笔记(3)
GameCanvas类提供了基本的游戏用户接口。除了从Canvas继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,比如后备屏幕缓冲和键盘状态查询的能力。



每个GameCanvas实例都会有一个为之创建的专用的缓冲区。因为每个GameCanvas实例都会有一个唯一的缓冲区。可以从GameCanvas实例获得其对应的Graphics对象,而且,只有对Graphics对象操作,才会修改缓冲区的内容。外部资源如其他的MIDlet或者系统级的通知都不会导致缓冲区内容被修改。该缓冲区在初始化时被填充为白色。



缓冲区大小被设置为GameCanvas的最大尺度。然而,当请求填充时,可被填充的区域大小会受限于当前GameCanvas的尺度,一个存在的Ticker,Command等等都会影响到GameCanvas的大小。GameCanvas的当前大小可以通过调用getWidth和getHeight获得。



一个游戏可能提供自己的线程来运行游戏循环。一个典型的循环将检查输入,实现游戏逻辑,然后渲染更新后的用户界面。以下代码演示了一个典型的游戏循环的结构:



// 从后备屏幕缓冲获得Graphics对象

Graphics g = getGraphics();

while (true) {

      // 检查用户输入并更新位置,如果有需要

      int keyState = getKeyStates();

      if ((keyState & LEFT_PRESSED) != 0) {

          sprite.move(-1, 0);

      }

else if ((keyState & RIGHT_PRESSED) != 0) {

          sprite.move(1, 0);

      }

      // 将背景清除成白色

      g.setColor(0xFFFFFF);

      g.fillRect(0,0,getWidth(), getHeight());

      // 绘制Sprite(精灵)

      sprite.paint(g);

      // 输出后备缓冲区的内容

      flushGraphics();

}


    
[3] MIDP3.0的新增特征介绍
    来源: 互联网  发布时间: 2014-02-18
MIDP3.0的新增特性介绍
1.         LIBlet
LIBlet是一种类似与ActiveX之类的组件技术,以独立的jar文件存在,内部可以包含classes以及资源文件,可以和MIDlet一样通过OTA下载,一旦下载到手机中就可以象使用系统API一样来进行使用。考虑到安全的缘故,LIBlet不允许执行外部的程序,还可以对LIBlet进行数字签名。
2.         支持RMS内部交换文件
RMS内部交换文件包含一个或者是多个记录集(RecordStore),可以以独立文件下载或者是包含在jar文件中。
该文件的后缀名是rms,为了方便数据的交换,该文件必须符合特定的数据格式,在规范中定义了该文件的详细格式。
3.         MIDlet更新
通过安装一个特定的MIDlet套件来实现MIDlet程序的更新,手机必须支持用户确认安装,并且在本机安装的版本比较新时给出用户提示。
关于更新的信息放在设备识别和请求头信息中。
4.         基于CLDC1.1
5.         支持IPv6
可以通过在jad文件中设置“MIDlet-use-IP-Version”来设置支持IPv6。例如:
        MIDlet-use-IP-Version = 6
6.         指定本地网络接口
可以指定手机使用哪个本地网络接口。但是该功能还不确定。
7.         MIDlet内部交换协议(IMC)
两个运行在不同执行环境下的MIDlet程序可以通过IMC协议进行通讯。IMC是一种类似于socket的低层协议,分为客户端连接和服务器端连接。
8.         增加的类
a)         DisplayListener
监听Display对象状态改变
b)        AnimatedImage
动画实现
c)        FileSelector
新增Screen界面,实现类似Windows上的打开对话框功能
d)        FormLayoutPolicy
支持Form布局格式
e)         MenuCommand
菜单按钮,支持多级菜单。
f)         TabbedPane
支持属性页格式的高级界面。
g)        LIBlet
支持软件组件
9.         支持程序支持的最大屏幕尺寸和最小屏幕尺寸
通过jad文件中MIDlet-Minimum-Canvas-Size和MIDlet-Maximum-Canvas-Size属性进行指定,安装时将进行校验,不符合要求的无法安装。
10.     包javax.microedition.event
为应用程序和应用程序之间的通讯提供支持。
更多更详细的信息可以参看MIDP3.0的规范文档。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3