看来还是更多的网友需要j2me方面的文章,最近我的
学习比较繁忙,所以没有写什么东西过来。呵呵,我
还是从开头开始讲吧。j2me是java平台的最小子集,
各个手机厂商使用相同的sun标准包,并在其上有各
自的实现,就我的过去经验知道siemens是api最开放
的,但nokia手机的运算效率好象很高,可能是我用
过siemens 2128 和 nokia 6108的缘故,我对这两个
手机厂商的手机比较了解。我的第一个游戏,俄罗斯
方块是运行在2128上面,速度我没有进行很好的控制
,尽管网友的反馈很好,但我知道这个我的第一个程
序在2128上不是很爽,后来用nokia 6108感觉好多了
。硬件平台是游戏功能的最主要体现者你需要什么样
的程序必须根据手机特性来选择。
做游戏,可以抛开很多j2me中的标准包,初学者可以
先了解如下一些类的作用:
canvas -> 可以理解成一个画布,你可以在上面绘制
各种元素
vector -> 类似带有索引的链表,是一个很好的线程
安全的东西,你可以在一个循环中剪切里面的元素,
而不会发生错误
random -> 随机数生成,在游戏里很有用
midlet ->象applet一样,被手机调用的入口,
graphics -> 可以理解为画笔
image -> 图片啊!!
thread -> 线程
………………………………
还有一些接口:
runnable -> 线程接口
等等!!
一个最常用的例子
我现在又没编译器,先写写,不行我在改
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
class mycanvas extends canvas implements
runnable
{
//双缓冲
private image offimage;
private graphics offgra;
//线程
private thread thread;
//小球的移动控制
private int x;
private int y;
private int vx;
private int vy;
public static final int var = 10;
public mycanvas()
{
offimage = image.createimage
(getwidth(), getheight());
offgra = image.getgraphics();
x = math.abs((new random
()).nextint() % getwidth());
y = math.abs((new random
()).nextint() % getheight());
vx = 1;
vy = 1;
thread = new thread(this);
thread.start();
}
public void paint(graphics g)
{
g.drawimage(offimage, 0, 0,
graphics.left|graphics.top);
}
public void run()
{
while(true)
{
if (x < 0 || x + var >
getwidth())
{
vx = -vx;
}
if (y < 0 || y + var >
getheight())
{
vy = -vy;
}
x += vx;
y += vy;
offgra.setcolor(0, 0,
0);
//黑色背景
offgra.fillrect(0, 0,
getwidth(), getheight());
offgra.setcolor(0, 0,
255);
//兰色,小矩形
offgra.fillrect(x, y,
var / 2, var / 2, graphics.top|graphics.left);
//兰色,小圆形忘了api
//offgra.fillarc(x, y,
var / 2, var / 2, 0,360, graphics.top|graphics.left);
try
{
thread.sleep
(40);
}
catch(exception ex)
{
}
}
}
}
public class mygame extends midlet
{
public void startapp()
{
diaplay.getdisplay(this).setcurrent(new mycanvas);
}
public void pauseapp(){}
public void destroyapp(boolean b){}
}
//你可以以mygame作为名字做一个j2me工程,然后在c:/wtk21/apps/mygame/src 中做一个mygame.java文件,应该可以运行通过了
闽公网安备 35060202000074号