//E.java
import javax.microedition.lcdui.*;
public class E {
T x;
boolean die;
int k;
public E(int x, int y, int color, int w,int h){
die=false;
this.x=new T(x,y,color,w,h);}
void paint(Graphics g,int k){
x.paint(g,k);}
}
. Sau đó trong game.java ta sửa lại như sau:
//game.java
import javax.microedition.lcdui.*;
import java.util.*;
public class game extends Canvas {
String["> smenu={"play game","help","about"};
int w,h,fh,mindex=0,mode=0,k,ak,cx=3;
Midlet m;
Font f=Font.getDefaultFont();
T t,x;
E["> e;
long lai=0;
Random rd=new Random();
public game(Midlet m){
this.m=m;
setFullScreenMode(true);
w=getWidth();
h=getHeight();
fh=f.getHeight();
t=new T(0,0,0xf0f0f0,w,h);
x=new T-192;
//khởi tạo e
e=new E[cx">;
for0{
e
=new E-192;}
}
public void paint(Graphics g){
g.setColor(0);
g.fillRect(0, 0, w, h);
g.setColor(0xf0f0f0);
switch(mode){
case 0: //vẽ menu
//vẽ thanh index
g.fillRect0/2+mindex*fh, w, fh);
//vẽ các menu
for0{
if(i==mindex){g.setColor(0);}else{g.setColor(0xf0f0f0);}
g.drawString0/2+i*fh, Graphics.HCENTER|Graphics.TOP);
}
break;
case 1: //vẽ game play
g.drawString0;
t.paint(g, k);
x.paint(g, (ak=ai(x,ak)));
if(check(t,x)){x.color-=0x000010;}
if(check(x,t)){t.color-=0x100000;}
//biến n đếm số xe đã được vẽ trong e
int n=0;
for0{
//chỉ vẽ ra tới 3 xe tăng, nếu nhiều hơn thì chờ đến lượt
if(n==2)continue;
//nếu chưa trúng đạn thì vẽ ra
if(!e.die)
{n++;
e.k=ai(e.x,e.k);
e.paint(g,e.k);
//check xem có trúng đạn của ta không, nếu có thì cho chết die=true
if(check(t,e.x))e.die=true;
if(check(e.x,t)){
//xe ta bị trúng đạn
//game over, kết thúc trò chơi, hay mất mạng, mất máu gì đó
}}
}
break;
case 2: //vẽ help
g.drawString0;
break;
case 3: //vẽ about
g.drawString0;
break;}
//vẽ nút lệnh
g.setColor(0xf0f0f0);
g.drawString("exit", 0, h, Graphics.LEFT|Graphics.BOTTOM);
g.drawString("back", w, h, Graphics.RIGHT|Graphics.BOTTOM);
repaint();}
protected void keyReleased(int k){this.k=0;}
public void keyPressed(int k){
this.k=k;
//cho di chuyển vị trí thanh menu
if(mode==0){
if-1mindex--;
if-2mindex++;
if(mindex<0)mindex=smenu.length-1;
if(mindex==smenu.length)mindex=0;
//thay đổi mode khi lựa chọn menu
if-5mode=mindex+1;
//các lệnh cho menu góc màn hình
if-6m.notifyDestroyed();}
if-7mode=0;}
boolean check(T a, T b){
int xc=0/16/3;
int yc=0/16/3;
if-1{
b.color-=0x100010;
return true;}
return false;}
int ai(T a,int ak){
if(lai<System.currentTimeMillis()-2000){
lai=System.currentTimeMillis();
int k=Math.abs(rd.nextInt())%4;
return -1;}
if(System.currentTimeMillis()%25==0)
return -1;
if(rd.nextInt()%3==0&&a.d.f==-1){return -5;}
return 0;}
}
. Kết quả đây, trò chơi gần như hoàn thiện, các bạn có thể thêm phần level cho trò chơi hoặc gì đó hay ho một chút...
Nguồn: Huỳnh Thanh Liêm
...