浏览 1103 次
锁定老帖子 主题:JAVAME学习笔记(3)
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-10
每个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(); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |