XtGem Forum catalog
logo

Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Home · Bang hội ·
* Đăng Nhập hoặc Đăng Kí
để sử dụng hết chức năng của diễn đàn.
Hi, Khách!
HomeBang hội » Thủ thuật » Nokia s40 » » Xem bài viết
Xuống dưới »
avatar by Pham_loi Pham_loi
Chức vụ:
01:33:41, 27-05-2016

Tạo menu lựa chọn game

bài này tôi sẽ hướng dẫn các bạn tạo menu với các lựa chọn trong J2ME

tạo lớp Point.java
<?php
package Zstar
;
 
import javax.microedition.xml.rpc.Operation;
 
/**
*
* @author zstar
*/
public class Point {
 
private 
int X 0;
private 
int Y 0;
 
public 
Point() {
}
 
public 
Point(int xint y) {
this.x;
this.y;
}
 
public 
int getX() {
return 
this.X;
}
 
public 
int getY() {
return 
this.Y;
}
}
?>

Copy code

tạo lớp Menu.java kế thừa từ GameCanvas
<?php
package Zstar
.menu;
 
import Zstar.Point;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
 
/**
*
* @author ZSTAR
*/
 
public class Menu extends GameCanvas {
 
private 
Stringoptions = {"New Game""Map Editor""High Score""About""Exit"};
private 
Point locationMenu = new Point(3030);
private 
int itemWidth;
private 
int item_space 15;
private 
Image itemSelect;
private 
Image itemUnselect;
private 
Graphics g;
private 
int itemHeight;
private 
int currentIndex 0;
private 
int white 0xffffff;
private 
int black 0x000000;
private 
Font font;
 
public 
Menu() {
super(false);
setFullScreenMode(true);
try {
this.this.getGraphics();
itemSelect Image.createImage("/Images/butoption_Press.png");
itemUnselect Image.createImage("/Images/butoption_unPress.png");
this.itemHeight itemSelect.getHeight();
this.itemWidth itemUnselect.getWidth();
this.font Font.getFont(Font.STYLE_ITALICFont.FACE_SYSTEMFont.SIZE_SMALL);
this.locationMenu = new Point(this.getWidth() / this.itemWidth 2this.locationMenu.getY());
g.setFont(font);
} catch (
Exception e) {
};
}
 
public 
void Draw() {
for (
int i 0options.lengthi++) {
if (
currentIndex == i) {
g.drawImage(itemSelectlocationMenu.getX(), locationMenu.getY() + itemHeight item_spaceGraphics.LEFT Graphics.TOP);
 
} else {
g.drawImage(itemUnselectlocationMenu.getX(), locationMenu.getY() + itemHeight item_spaceGraphics.LEFT Graphics.TOP);
}
g.drawString((1) + ". " options[ilocationMenu.getX() + 15locationMenu.getY() + itemHeight item_space 5Graphics.TOP Graphics.LEFT);
this.flushGraphics();
}
}
 
private 
void clear_Item(int i) {
g.setColor(this.white);
g.fillRect(locationMenu.getX(), locationMenu.getY() + itemHeight item_spaceitemWidthitemHeight);
g.drawImage(itemUnselectlocationMenu.getX(), locationMenu.getY() + itemHeight item_spaceGraphics.LEFT Graphics.TOP);
g.setColor(this.black);
g.drawString((1) + ". " options[ilocationMenu.getX() + 15locationMenu.getY() + itemHeight item_space 5Graphics.TOP Graphics.LEFT);
 
flushGraphics();
}
 
private 
void Draw_nextItem(int i) {
clear_Item(i);
g.drawImage(itemSelectlocationMenu.getX(), locationMenu.getY() + itemHeight item_spaceGraphics.LEFT Graphics.TOP);
g.drawString((1) + ". " options[ilocationMenu.getX() + 15locationMenu.getY() + itemHeight item_space 5Graphics.TOP Graphics.LEFT);
flushGraphics();
}
 
public 
void keyPressed(int keyCode) {
switch (
getGameAction(keyCode)) {
case 
UP:
clear_Item(currentIndex);
menuSelectChange(-1);
Draw_nextItem(currentIndex);
break;
case 
DOWN:
clear_Item(currentIndex);
menuSelectChange(1);
Draw_nextItem(currentIndex);
break;
case 
FIRE:
//xu ly khi chon
;
break;
}
}
 
private 
void menuSelectChange(int h) {
//viec lua chon menu se chay vong tron
currentIndex += options.length;
currentIndex currentIndex options.length;
}
}
?>

Copy code

Tạo 1 Midlet để test menu như sau

<?php
package Zstar
;
 
import Zstar.menu.*;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
 
/**
* @author ZSTAR
*/
public class MenuMidlet extends MIDlet {
private 
Menu menu;
 
public 
void startApp() {
menu=new Menu();
menu.Draw();
Display.getDisplay(this).setCurrent(menu);
}
 
public 
void pauseApp() {
}
 
public 
void destroyApp(boolean unconditional) {
}
}
?>

Copy code

kết quả :

img
menu sẽ được chọn khi bấm phím up,down

chúc các bạn vui vẻ

Like: 0

Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014