}
public void paint(Graphics g, int w, int h) {
g.drawRect(0, 0, w - 1, h - 1);
int stepx = 8, stepy = 16;
for (int y = 0; y < h; y += stepy) {
for (int x = 0; x < w; x += stepx) {
g.drawLine(x, y, x + stepx, y + stepy);
g.drawLine(x, y + stepy, x + stepx, y);
if (mState == true) {
int midx = x + stepx / 2;
int midy = y + stepy / 2;
g.fillTriangle(x, y, x + stepx, y, midx, midy);
g.fillTriangle(midx, midy, x, y + stepy,
x + stepx, y + stepy);
}
}
}
}
// CustomItem methods.
protected void keyPressed(int keyCode) { toggle(); }
protected void pointerPressed(int x, int y) { toggle(); }
}
Thư viện Game API
Phiên bản MIDP 2.0 phát hành ra là một tin tốt cho các nhà phát triển game. Nhiều cải
tiến của bản phát hành này có thể được tìm thấy trong thư viện Game API, trong gói
javax.microedition.lcdui.game. Năm lớp trong thư viện Game API mở rộng khả năng đồ
họa của MIDP. Khái niệm cơ bản là nội dung của màn hình có thể được tạo thành từ các
lớp (layer) khác nhau. Một layer có thể chứa hình nền. Layer khác có thể chứa một
chiếc tàu bay hoặc một con nhím. Layer khác có thể thể hiện sương mù, hoặc mây, hoặc
nước hoặc bất kỳ thứ gì khác.
Lớp căn bản trong thư viện Game API là Layers, về cơ bản chỉ là một bề mặt vẽ cùng
với vị trí và kích thước. Các lớp con sẽ kế thừa các chức năng chuyên biệt hơn.
TiledLayer là một Layer mà nội dung của nó được vẽ từ các “viên gạch lát” (tile) được
chứa trong một hình ảnh nguồn. Sprite là một Layer dùng để hoạt họa các khung hình
(frame) cũng được chứa trong hình ảnh nguồn.
Một LayerManager giúp dễ dàng tạo và hiển thị nhiều layer.
Lớp GameCanvas là một lớp con của Canvas. Ngoài khả năng của một Canvas bình
thường, nó còn cung cấp một bộ đệm offscreen để giúp hiển thị hình ảnh nhanh, không
nhấp nháy và có khả năng tham dò (poll) trạng thái các phím game của thiết bị.