我是靠谱客的博主 贪玩火龙果,最近开发中收集的这篇文章主要介绍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();

}

最后

以上就是贪玩火龙果为你收集整理的JAVAME学习笔记(3)的全部内容,希望文章能够帮你解决JAVAME学习笔记(3)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部