手機遊戲UI的初步設計

主要工作參考無花的代碼,再次感謝。

1. Part.java
UI元素的父類,主要描述了字體、屏幕的元素、顏色

package com.nbgame.ui.core;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

public abstract class Part extends Canvas {
Font font = Font.getDefaultFont();
int TL = Graphics.LEFT | Graphics.TOP;
int strWith = font.stringWidth("");

protected static final int BgColor = 0x000000;
protected static final int textColor = 0xF5F5F5;
protected static final int NoSltColor = 0xBBFFFF;

int sw = getWidth();
int sh = getHeight();

}



2. 實現菜單
主要思路就是paint(g)和各種相關動作,不如上下選擇和確定的實現
示意代碼如下

public class Menu extends Part{
String[] elements = null;
int style = 0; // 表示添加位置

public Menu(String[] elements, int type) {
this.elements = elements;
this.style = type;
}

public void paint(Graphics g) {
// TODO Auto-generated method stub
g.setColor(BgColor);
// for(int i=0; i<elements.length;i++){
g.drawString(elements[0], 0, 30, TL);
g.drawString(elements[1], 0, 0, TL);
g.drawString(elements[2], 0, 10, TL);

}

int idx = 0; // 選中的索引數值

/**
* 改變按鍵的數值
*/
public void selectUp() {
idx = (idx - 1 < 0) ? elements.length - 1 : idx - 1;
}

/**
* 改變按鍵的數值
*/
public void selectDown() {
idx = (idx + 1 > elements.length - 1) ? 0 : idx + 1;
}



3. 測試代碼
基本思路:初始化menu對象,然後調用menu.paint(g)實現具體的界面繪製
另外在接收到按鍵之後,可以調用menu.selectUp(), selectDown(), fire()方法,來實現具體的邏輯處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章