📄 gamemenu.java
字号:
/*
* GameMenu.java
*
* Created on 2006年5月5日, 上午11:18
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package DogPet;
import javax.microedition.lcdui.*;
// Game_control
public class GameMenu extends FullCanvas //继承全屏类,来实现全屏???????????????????为什么没有实现全屏
{
private Game_control game_control;
private Image image_bg;
private int sel;//用来判断到了菜单项的第几项
private int event;
private String option[];
public GameMenu(Game_control gc)
{
image_bg = null;
sel = 1;
event = -1;
option = new String[4];
game_control = gc;
option[0] = "开始游戏!";
option[1] = "继续游戏!";
option[2] = "游戏说明!";
option[3] = "离开游戏!";
try
{
if(image_bg == null)
image_bg = Image.createImage("/splash1.png");//**********创建宠物菜单图片**********
}
catch(Exception ex) {
System.out.println("加载图片失败!可能文件不存在或者受到损坏!");
}
}
public void paint(Graphics g)
{
g_cls(g, 255); //RGB值全为0表示黑色,为255表示白色
g.setColor(0);//将游戏菜单背景显示为黑色
g.fillRect(45, 65, 120, 120);//距离屏幕的左上右下_______设置菜单区域大小
g.setColor(0);
g.setColor(0xffff00);
g.drawRect(47, 67, 116, 116);//设置菜单区域的内外黄色边框
g.drawRect(45, 65, 120, 120);
g.setColor(0xffffff);
g.drawString("游戏选项!", 65, 90, 20);
g.setColor(65280);//******此处为设置隔离条的颜色为绿色******
g.drawRect(65, 105, 80, 2);//******设置隔离条的大小,前两者为距离屏幕左边和上边的距离,后两者为隔离条的长和高
for(int i = 0; i < option.length; i++)//*********按键指向哪一个,哪一个就变成红色*********
{
g.setColor(0xffffff);//将字体都设置为白色
if(i == sel)
g.setColor(0xff0000);
g.drawString(option[i], 65, 110 + i * 15, 20);//左上 20的作用是什么????说明开始位置是左上角??????为什么不能修改为别的值?????
}
}
protected void keyPressed(int keyCode)
{
int action = getGameAction(keyCode);
switch(action)
{
default:
break;
case 1: // '\001'
sel = sel - 1;
if(sel < 0)
sel = option.length - 1;
repaint();
break;
case 6: // '\006'
sel = sel + 1;
if(sel >= option.length) //如果到了菜单项的最后一个则转到第一个
sel = 0;
repaint();
break;
case 8: // '\b'
if(event != -1)
break;
event = sel;
switch(sel)
{
case 0: // '\0'
game_control.newgame();
break;
case 1: // '\001'
game_control.loadgame();
break;
case 2: // '\002'
game_control.helpgame();
break;
case 3: // '\003'
game_control.endgame();
break;
}
break;
}
}
public void g_cls(Graphics g, int setcolor)//该方法用来实现绘制图像和设置背景颜色
{
g.setColor(setcolor); //根据setcolor的当前值来设定当前背景颜色
g.fillRect(0, 0, getWidth(), getHeight());//用当前颜色来填充其中参数制定的填充区域,也就是背景颜色===蓝色*****
g.drawImage(image_bg, 25, 30, 20);//绘制图像,在指定区域******常用的值有0或20:左上,17:正中间,24:右上,36:左下,40:右下
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -