画String时,没有做过移植的,仅仅在模拟器上测试的同学们,可能都会发现,画的String怎么老是不固定。对的,不同机器,不同模拟器,不同font大小都不一样。画String似乎让人很迷茫了,难道每个机型都自己一套代码?呵呵,下面提提j2me游戏中的通常做法吧。
自己做点阵字库我们不提。当然这是个解决方案,据说gameloft是这样搞的,好多游戏公司也是这样搞的。这里不多介绍了。
一般做法,会设置一个font:
public static Font smallFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
在paint方法里g.setFont(smallFont)设置进去。为什么是smallFont,不是lagreFont?它们都行的,只是想提高速度,提高一个屏幕容纳字的数量。 放心吧,手机里的小号字体,人眼肯定可以看清楚的。font在手机里,大小font是可以的,其他型号的字体支持得不好,想想吧,手机才多大内存啊?把什么字体都放进去,手机还能玩不?
在画String前,graphics.drawString可以确定起始画点坐标x,y。而font.stringWidth(String str)
则可以确定stri将画出多少个像素宽。font.getHeight()可以得到多少像素高。 这样画之前就要先定好位置,同时注意anchor.
大屏中屏的测试真机经验告诉我,这些机子一行smallFont能放得下最多11个中文,12个有些机器就可能不够放了。假设有很长的String呢?比如rpg的对话,或者游戏背景介绍等很多字符的String。这些String里会有一些是英文,一些数字,一些中文等。怎么办?网上据说有这种函数。传一个font,一个String,一个指定的高度,长度方框内。会返回一个String[],然后你只要根据String[]一行行画出来就成了。我这里也没去找这样了函数,也没必要。把String打成char[], charAt(i)也成,font.charWidth(ch c)告诉我们,自己可以搞定。根据font.getHeight(),font.charWidth(ch c),自己就可以写像这样的函数了。控制到每个字符,遇到\n还可按回车处理,等等
分享到:
相关推荐
j2ME使用Graphics类进行绘图操作,支持基本的绘图函数如drawRect()、drawString()等。通过改变绘制位置和颜色,可以实现简单的动画效果。更复杂的动画可通过精灵(Sprites)技术实现,即多个图像帧的切换。 六、...
例如,`drawString()`可以对应到`Canvas.drawText()`,`drawRect()`对应`Canvas.drawRect()`。 然后,`RecordStore`在J2ME中是用于存储小块数据的接口,类似于本地数据库。在Android中,可以使用SQLite数据库或者...
Java 2 Micro Edition(J2ME)是一种专为嵌入式设备和移动设备设计的Java平台,它允许开发者创建可以在各种小型设备上运行的应用程序。"HelloWorld"是编程世界中的一个经典入门示例,用于展示如何在特定环境中打印出...
J2ME中的Graphics类是进行图形绘制的核心,提供了一系列方法如drawImage()用于绘制图片,fillRect()用于填充矩形,drawString()用于绘制文本。连连看的棋盘通常由许多小方格组成,每个方格可以是一个图片或颜色,...
J2ME中的图形绘制主要依赖于`Graphics`类,它提供了各种绘图方法,如`drawRect()`, `drawLine()`, `drawString()`等。开发者可以利用这些方法在Canvas组件上创建游戏画面。 **3. 人物角色** 人物角色是游戏的核心...
文字提示可以使用`drawString()`方法在适当位置显示当前进度的百分比。 3. **动画效果**:为了增加动态感,可以为进度条添加动画效果。例如,通过定时器定期更新进度条的填充宽度,让进度条逐渐增长。`javax....
2. **字体和颜色**:通过setColor和drawString方法设置文本颜色和显示得分。 五、资源管理 1. **内存优化**:由于移动设备资源有限,游戏需要有效管理内存,例如避免创建过多对象,及时释放不再使用的资源。 2. *...
J2ME游戏开发通常会采用基于Canvas的自定义绘图方式,利用drawRect、drawString等方法实现游戏画面的绘制。此外,理解游戏循环(Game Loop)和状态管理(State Management)是构建游戏逻辑的关键。设计模式如单例...
J2me文本自动换行显示的代码,里面的字符串默认是居中显示的,只要把drawString调整一下就可以改变显示方式了。
这些实例将展示如何使用`drawString()`, `drawRect()`, `fillRect()`, `drawOval()`等方法创建游戏界面。 2. **事件处理**:J2ME使用`MIDlet`作为应用程序的入口点,并通过`Command`对象处理用户输入。源码中会展示...
3. **字形绘制**:获取到输入的Unicode码点后,找到对应的字形,利用`Graphics`类的绘图方法(如`drawString()`)在`Canvas`上绘制字符。 4. **缓冲区管理**:为了实现连续输入,需要维护一个缓冲区,保存当前正在...
g.drawString("Hello, Kjava!", 10, 10); // 显示文本 OKButton = new Button("OK"); OKButton.addActionListener(hk); add(OKButton); } // 添加事件监听器和其他业务逻辑 } ``` 总的来说,开发Palm OS上的...
绘制图像和文本,J2ME使用drawImage和drawString,Android对应的方法为drawBitmap和drawText,且有多个重载版本。设置剪切区域,J2ME的setClip在Android中对应的API是clipRect,并且Android还提供了Region.Op参数。...
开发者需要掌握如何使用drawRect、drawString等方法来绘制图形,并通过定时器更新屏幕内容以实现动画效果。 3. **用户交互**:游戏可能使用了键盘事件监听来控制蜻蜓的飞行方向,通过实现CommandListener接口或直接...
开发者可以利用`Graphics`类的方法,如`drawRect()`, `drawString()`, `fillPolygon()`等,来绘制游戏场景。对于"SpaceWar"这样的动作游戏,可能会使用定时器来控制游戏循环,更新游戏状态并重绘屏幕。 **4. 用户...
在J2ME中,我们通常使用Canvas类作为游戏画布,它提供了绘图的基本方法,如drawRect()、drawString()等。源码中的fangkuai类可能就是继承自Canvas,用于绘制游戏界面。此外,利用J2ME的Graphics对象,可以实现动态的...
你需要掌握Graphics类的各种绘图方法,如drawRect、drawString等,以及颜色、线型和字体的设置。 4. **事件处理**:J2ME使用KeyListener和CommandListener来处理用户输入,如按键事件。你需要编写监听器来响应这些...
g.drawString("Hello, J2ME!", getWidth() / 2, getHeight() / 2, Graphics.TOP | Graphics.HCENTER); } } ``` 这段代码展示了如何在屏幕上居中绘制一条文本消息。通过调用`drawString()`方法,我们可以指定文本...
3. **图形绘制**:Canvas类是J2ME中用于自定义绘图的主要接口,开发者可以使用Graphics对象的drawRect(), drawString()等方法绘制游戏元素。 4. **动画**:通过在游戏循环中改变图像的位置,可以实现简单的动画效果...
使用drawRect、drawString等方法进行基本绘图,结合定时器实现帧动画。 5. **事件处理**:J2ME中的事件处理主要是键盘和触摸事件。MIDlet必须注册事件监听器来响应用户的输入。 6. **数据存储**:J2ME提供...