📄 mycan.java
字号:
g.drawImage(helptwo[1][0], 150, 175, Graphics.TOP | Graphics.LEFT);
}
if (count % 11 >= 0 && count % 11 <= 5) {
g.drawImage(helptwo[0][1], 7, 0, Graphics.TOP | Graphics.LEFT);
g.drawImage(helptwo[0][1], 117, 0, Graphics.TOP | Graphics.LEFT);
g.drawImage(helptwo[1][1], 97, 175, Graphics.TOP | Graphics.LEFT);
g.drawImage(helptwo[1][1], 150, 175, Graphics.TOP | Graphics.LEFT);
}
}
// 总控制
public void keyPressed(int keyCode) {
int keystate = getGameAction(keyCode);
switch (gamestate) {
case LOG:
log++;
count += 60;
repaint();
break;
case MENU:
controlMenu(keystate);
break;
case RUN:
if (keyCode == 49) {
gamestate = PAUSE;
}
controlPlayer(keystate);
break;
case PAUSE:
gamestate = RUN;
break;
case GAMEOVER:
gamestate = MENU;
break;
case SHOP:
controlShop(keystate);
break;
case HELP:
gamestate = MENU;
break;
case WRITE:
selectName(keystate);
break;
case RANK:
gamestate = MENU;
break;
}
}
// 控制鱼
void controlFish() {
for (int i = 0; i < npc.size(); i++) {
Fish temp = (Fish) npc.elementAt(i);
if (temp.isfish) {
temp.setdirect(Fish._UP);
temp.turnV(1);
player.isback = true;
}
}
}
// 控制玩家
void controlPlayer(int keyCode) {
switch (keyCode) {
case LEFT:
if (player.isMove()) {
player.setdirect(173);
player.move();
}
break;
case RIGHT:
if (player.isMove()) {
player.setdirect(174);
player.move();
}
break;
case UP:
if (!player.isShark && player.isfish) {
controlFish();
}
break;
case DOWN:
player.contorlLine();
break;
case FIRE:
if (player.alive(1) != 0) {
shop.dx = 70;
shop.dy = 98;
fire = true;
shop.count = 0;
stopFish();
}
player.delone(1);
break;
}
}
// 控制菜单
void controlMenu(int keystate) {
switch (keystate) {
case UP:
if (frame > 0) {
frame--;
} else {
frame = 3;
}
break;
case DOWN:
if (frame < 3) {
frame++;
} else {
frame = 0;
}
break;
case LEFT:
if (frame > 0) {
frame--;
} else {
frame = 3;
}
break;
case RIGHT:
if (frame < 3) {
frame++;
} else {
frame = 0;
}
break;
case FIRE:
switch (frame) {
case 0:
player = new Play();
gamestate = LOGOG;
break;
case 1:
turnH();
break;
case 2:
drawrank = true;
gamestate = RANK;
break;
case 3:
mymid.exit();
break;
}
break;
}
}
// 控制留名
void selectName(int keystate) {
switch (keystate) {
case UP:
if (ky - NW <= 116) {
ky = 164;
namenum += 21;
} else {
ky -= NW + 2;
namenum -= 7;
}
break;
case DOWN:
if (ky + NW >= 164) {
ky = 116;
namenum -= 21;
} else {
ky += NW + 2;
namenum += 7;
}
break;
case LEFT:
if (kx - NW <= 25) {
kx = 132;
namenum += 6;
} else {
kx -= NW + 4;
namenum -= 1;
}
break;
case RIGHT:
if (kx + NW >= 132) {
kx = 25;
namenum -= 6;
} else {
kx += NW + 4;
namenum += 1;
}
break;
case FIRE:
String a = "" + (char) namenum;
if (namenum < 'Z' + 1 && winname.length() < 6) {
winname.append(a);
}
a = "";
if (namenum == 'Z' + 1 && winname.length() > 0) {
winname.deleteCharAt(winname.length() - 1);
}
if (namenum == 'Z' + 2) {
Myrms mrs = new Myrms();
String wa = winname.toString();
mrs.addR(wa, playgoal);
drawrank = true;
gamestate = RANK;
mrs.close();
// --------------------------
winname.delete(0, winname.length() - 1);
}
break;
}
}
// 控制商店
void controlShop(int keystate) {
switch (keystate) {
case DOWN:
shop.turnY();
break;
case FIRE:
switch (shop.ly) {
case 2:
level++;
gamestate = LOGOG;
break;
case 27:
if (player.getGoal() > 100) {
player.buyone(0);
shop.drawBlank();
}
break;
case 52:
if (player.getGoal() > 200) {
player.buyone(1);
shop.drawBlank();
}
break;
case 77:
if (player.getGoal() > 300) {
player.buyone(2);
shop.drawBlank();
}
break;
}
break;
}
}
protected void showNotify() {
new Thread(this).start();
}
// 判断鱼
void judgeFish() {
for (int i = 0; i < npc.size(); i++) {
Fish temp = (Fish) npc.elementAt(i);
if (temp.isCatch(player.getX(), player.getY())) {
temp.setXY(player.getX() - 6, player.getY());
temp.turnV(0);
temp.frame = 0;
money = temp.getCoin();
player.isfish = true;
}
}
}
// 停止鱼
void stopFish() {
for (int i = 0; i < npc.size(); i++) {
Fish temp = (Fish) npc.elementAt(i);
temp.turnV(0);
}
}
// 动鱼
void moveFish() {
for (int i = 0; i < npc.size(); i++) {
Fish temp = (Fish) npc.elementAt(i);
temp.turnV(1);
}
}
// 判断鲨鱼
void judgeSK() {
if (sk.isCatch(player.getX(), player.getY())) {
sk.count++;
player.isfish = true;
player.isShark = true;
sk.stay = true;
if (sk.count == 100) {
player.isfish = false;
player.isShark = false;
sk.stay = false;
sk.count = 0;
} else if (player.alive(0) != 0) {
player.isfish = false;
player.isShark = false;
sk.stay = false;
sk.count = 0;
player.delone(0);
}
}
}
// 判断箱子
void judgeBox() {
if (shop.openBox(player.getX(), player.getY()) && player.alive(2) != 0) {
shop.isopen = true;
shop.boxcount++;
player.isfish = true;
if (shop.boxcount == 60) {
shop.setbox = false;
player.isfish = false;
int a = (rand.nextInt(9) + 1) * 100;
player.setGoal(a);
player.delone(2);
}
}
}
// 鱼移动
void moveNPC() {
for (int i = 0; i < npc.size(); i++) {
Fish temp = (Fish) npc.elementAt(i);
temp.move();
}
}
// 判断游戏
void judgeGame() {
if (m.count >= 2950) {
if (!isOver()) {
Myrms mrs = new Myrms();
try {
if (mrs.rs.getNextRecordID() <= 4) {
gamestate = WRITE;
} else if (mrs.rs.getNextRecordID() >= 4) {
byte[] temp = mrs.rs.getRecord(3);
Winner win = new Winner(temp);
if (playgoal > win.count) {
gamestate = WRITE;
} else {
gamestate = GAMEOVER;
}
}
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
mrs.close();
} else {
shop = new Shop();
gamestate = SHOP;
}
log = 0;
}
}
// 控制计数器
int countUp(boolean a) {
if (a) {
count++;
if (count == 10000) {
count = 0;
}
if (count == 60) {
log = 1;
}
} else {
count = 0;
}
return count;
}
void logic() {
switch (gamestate) {
case LOGOG:
log++;
if (log >= 60) {
initializeMap();
shop.count = 0;
gamestate = RUN;
}
break;
case RUN:
m.circulateMap();
m.countUp(true);
addNpc();
moveNPC();
// -----------------------
sk.move();
if (!player.isfish && !player.isShark) {
judgeFish();
}
if (sk.iscome) {
judgeSK();
}
if (shop.setbox) {
judgeBox();
}
if (m.count == 1000) {
shop.setbox = true;
}
if (m.count % 300 == 0) {
addSk();
}
if (fire) {
shop.dcount++;
if (shop.dcount == 750) {
moveFish();
}
}
judgeGame();
shop.count++;
if (shop.setbox && !shop.isopen) {
shop.moveBox();
}
playgoal = player.getGoal();
// --------------------------------
if (player.alive(1) == 0 && shop.count == 30) {
fire = false;
}
break;
}
}
public void run() {
while (true) {
try {
logic();
repaint();
Thread.sleep(33);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -