📄 rhythm_room.java
字号:
centerImage = Image.createImage("/07.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(83 - r, 190 - r, 10, 10, 0, 360);
break;
case 8:
try {
centerImage = Image.createImage("/08.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(56 - r, 162 - r, 10, 10, 0, 360);
break;
case 9:
try {
centerImage = Image.createImage("/09.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(46 - r, 130 - r, 10, 10, 0, 360);
break;
case 10:
try {
centerImage = Image.createImage("/10.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(56 - r, 93 - r, 10, 10, 0, 360);
break;
case 11:
try {
centerImage = Image.createImage("/11.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(83 - r, 66 - r, 10, 10, 0, 360);
break;
default:
;
}
}
//游戏主画面
if (state == 1) {
if (start1 == 0) {
removeCommand(enter); //去除enter Command;
removeCommand(help); //去除help Command;
removeCommand(replay);//去除replay Command;
removeCommand(record);//去除record Command;
addCommand(start); //加入start Command;
} else {
removeCommand(start); //去除help Command;
addCommand(stop); //加入start Command;
}
width = getWidth();
height = getHeight();
if (flag == 0) {
g.drawImage(backImage, 0, 0, g.TOP | g.LEFT);
int r = 5;
g.setColor(0, 255, 0);
switch (startNum) {
case 0:
g.drawArc(120 - r, 56 - r, 10, 10, 0, 360);
break;
case 1:
g.drawArc(156 - r, 66 - r, 10, 10, 0, 360);
break;
case 2:
g.drawArc(182 - r, 93 - r, 10, 10, 0, 360);
break;
case 3:
g.drawArc(191 - r, 130 - r, 10, 10, 0, 360);
break;
case 4:
g.drawArc(182 - r, 164 - r, 10, 10, 0, 360);
break;
case 5:
g.drawArc(155 - r, 191 - r, 10, 10, 0, 360);
break;
case 6:
g.drawArc(120 - r, 200 - r, 10, 10, 0, 360);
break;
case 7:
g.drawArc(83 - r, 190 - r, 10, 10, 0, 360);
break;
case 8:
g.drawArc(56 - r, 162 - r, 10, 10, 0, 360);
break;
case 9:
g.drawArc(46 - r, 130 - r, 10, 10, 0, 360);
break;
case 10:
g.drawArc(56 - r, 93 - r, 10, 10, 0, 360);
break;
case 11:
g.drawArc(83 - r, 66 - r, 10, 10, 0, 360);
break;
default:
;
}
switch ((startNum + counter) % 12) {
case 0:
try {
centerImage = Image.createImage("/00.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(120 - r, 56 - r, 10, 10, 0, 360);
break;
case 1:
try {
centerImage = Image.createImage("/01.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(156 - r, 66 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 2:
try {
centerImage = Image.createImage("/02.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(182 - r, 93 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 3:
try {
centerImage = Image.createImage("/03.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(191 - r, 130 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 4:
try {
centerImage = Image.createImage("/04.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(182 - r, 164 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 5:
try {
centerImage = Image.createImage("/05.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(155 - r, 191 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 6:
try {
centerImage = Image.createImage("/06.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(120 - r, 200 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 7:
try {
centerImage = Image.createImage("/07.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(83 - r, 190 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 8:
try {
centerImage = Image.createImage("/08.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(56 - r, 162 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 9:
try {
centerImage = Image.createImage("/09.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(46 - r, 130 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 10:
try {
centerImage = Image.createImage("/10.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(56 - r, 93 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
case 11:
try {
centerImage = Image.createImage("/11.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(centerImage, 120, 130, g.VCENTER | g.HCENTER);
g.fillArc(83 - r, 66 - r, 10, 10, 0, 360);
AlertType.ALARM.playSound(display);
break;
default:
;
}
} else {
removeCommand(stop); //去除help Command;
addCommand(replay);
//显示game over
Image helpImage = null;
try {
helpImage = Image.createImage("/result.png");
} catch (Exception e) {
e.printStackTrace();
}
g.drawImage(helpImage, 0, 0, g.TOP | g.LEFT);
//给出游戏结果和最终时间差(毫秒)
g.setColor(120, 240, 60);
g.drawString(canvas.timeOpinion(time3), 24, 40, g.LEFT | g.TOP);
g.drawString("您的误差是:", 80, 100, g.LEFT | g.TOP);
g.drawString(String.valueOf(time3), 100, 120, g.LEFT | g.TOP);
g.drawString("(毫秒)", 100, 140, g.LEFT | g.TOP);
if (anyRecord) {
if (time3 < recordTime) {
g.drawString("祝贺您!您打破了本机记录!", 20, 180, g.LEFT | g.TOP);
try {
rs = RecordStore.openRecordStore("LOCALRECORD", true);
recordTime = time3;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeLong(recordTime);
} catch (Exception e) {
}
byte[] data = baos.toByteArray();
rs.setRecord(1, data, 0, data.length);
rs.closeRecordStore();
} catch (RecordStoreException e) {
}
}
} else {
try {
rs = RecordStore.openRecordStore("LOCALRECORD", true);
recordTime = time3;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeLong(recordTime);
} catch (Exception e) {
}
byte[] data = baos.toByteArray();
rs.addRecord(data, 0, data.length);
rs.closeRecordStore();
} catch (RecordStoreException e) {
}
}
}
}
}
protected String timeOpinion(long gametime) {
if (gametime > 2000) {
return "天哪!您的节奏感……";
} else if (gametime > 1000) {
return "加油!请努力提高您的节奏感";
} else if (gametime > 500) {
return "不错!您的节奏感很正常";
} else if (gametime > 200) {
return"喔,您的节奏感很棒哦";
} else if (gametime > 100) {
return "祝贺您!您的节奏感非常细腻";
} else if (gametime > 50) {
return "您有着超凡的敏锐节奏感!!";
} else {
return "天哪,结果是真的吗?!";
}
}
}
class ClockTimerTask extends TimerTask {
public final void run() {
counter++;
if (counter == 6) {
timerTask.cancel();
enable = 1;
time1 = System.currentTimeMillis();
}
canvas.repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -