概述
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();
}
最后
以上就是贪玩火龙果为你收集整理的JAVAME学习笔记(3)的全部内容,希望文章能够帮你解决JAVAME学习笔记(3)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复