📄 gamecanvas.java~1~
字号:
V = true;
J = null;
if(h != null) {
h.stopThread();
h = null;
}
System.gc();
z = false;
if(player1 != null)
player1.SetNull();
else
player1 = new Player(this, false);
if(player2 != null)
player2.SetNull();
else
player2 = new Player(this, true);
player1.setPlayer((byte)i1);
player2.setPlayer((byte)j1);
if(P.backToGameMode() == 3)
player1.setE(player1.getE() * 2);
System.gc();
round = 0;
vRound[0] = 0;
vRound[1] = 0;
reset();
}
/*
* 重新设定游戏
*/
public void reset(){
b = 0;
refreshNum = 0L;
A = 0;
sCounter = 0;
a = 0L;
int i1 = 0;
if(P.backToGameMode() == 3)
i1 = player1.getE();
player1.resetPlayer();
if(P.backToGameMode() == 3) {
player1.setE(i1);
if(i1 == 0)
player1.setE(DragonSoul.eNum[player1.getPlayer()]);
}
player2.resetPlayer();
if(P.setting[2] == 0 || P.backToGameMode() == 0) {
G = "开始!!!";
} else {
round++;
G = "第".concat(String.valueOf(String.valueOf(round))).concat("回");
}
E = false;
overTime = false;
startT();
sCounter = 20;
}
// public void setElse()
// {
// sCounter = 20;
// }
/*
* 开始游戏或过关继续游戏
*/
public void startT()
{
bPause = false;
B += System.currentTimeMillis() - a;
if(J == null)
{
V = false;
J = new Thread(this);
J.start();
} else {
A = (int)(System.currentTimeMillis() - B) / 1000;
}
}
/*
* 游戏胜利结束对局
*/
public void endT()
{
V = true;
J = null;
System.gc();
}
/*
* 游戏暂停并记下系统当前时间
*/
public void pauseGame()
{
bPause = true;
a = System.currentTimeMillis();
}
/*
* 隐藏游戏界面
*/
protected void hideNotify()
{
pauseGame();
}
/*
* 显示游戏界面
*/
protected void showNotify()
{
P.loadLights();
startT();
}
/**
* 获得入口类对象
* @return p DragonSoul入口类对象
*/
public DragonSoul getP()
{
return P;
}
/**
* 获得游戏角色1
* @return player1 Player,游戏角色类
*/
public Player getPlayer1()
{
return player1;
}
/**
* 获得游戏角色2
* @return player2 Player,游戏角色类
*/
public Player getPlayer2()
{
return player2;
}
/*
* 获得游戏背景图片定位坐标
*/
public int getB()
{
return b;
}
/**
* 获得游戏中执行的时间
* @return A int,游戏中执行时间
*/
public int getA()
{
return A;
}
/**
* 设定游戏玩家
* @param b1 Player,游戏玩家
*/
public void setPlayer1(Player b1)
{
Player b2 = getPlayer2();
if(b2 == b1)
{
b2 = getPlayer1();
vRound[0]++;
start(6);
if(P.backToGameMode() == 3)
{
int i1 = player1.getE() + DragonSoul.eNum[player1.getPlayer()] / 4;
if(i1 > DragonSoul.eNum[player1.getPlayer()] * 2)
i1 = DragonSoul.eNum[player1.getPlayer()] * 2;
player1.setE(i1);
}
} else {
vRound[1]++;
start(4);
}
G = String.valueOf(String.valueOf(DragonSoul.name[b2.getPlayer()])).concat(" 赢!");
sCounter = 20;
E = true;
}
/*
* 判断比赛的回合数
*/
public boolean jugdeGameNum(){
return vRound[0] > P.setting[2];
}
/*
* 设定新游戏
*/
private void setNew() {
if(sCounter > 0) {
sCounter--;
if(sCounter == 0)
if(E || overTime) {
//System.out.println("round = " + round);
//System.out.println("vRound[0] = " + vRound[0]);
//System.out.println("vRound[1] = " + vRound[1]);
if ((round < P.setting[2] * 2 + 1&& (vRound[0] == P.setting[2] + 1 || vRound[1] == P.setting[2] + 1))
|| (round == P.setting[2] * 2 + 1&& (vRound[0] != vRound[1]))
/*|| jugdeGameNum(0) || jugdeGameNum(1)*/) {
if(vRound[0] > vRound[1])
start(7);
else
start(5);
endT();
try {
Thread.currentThread();
Thread.sleep(3000L);
} catch(Exception exception) { }
if(jugdeGameNum() && (P.backToGameMode() == 2 || P.backToGameMode() == 3)){
int i1 = getPlayer1().getPlayer();
int j1 = getPlayer2().getPlayer();
if(++j1 == i1)
j1++;
if(j1 >= 8) {
M = P.backToGameMode() == 2;
m = P.backToGameMode() == 3;
repaint();
serviceRepaints();
try
{
Thread.currentThread();
Thread.sleep(3000L);
}
catch(Exception exception2) { }
}
}
} else {
try
{
Thread.currentThread();
Thread.sleep(3000L);
}
catch(Exception exception1) { }
reset();
}
} else
{
startT();
B = System.currentTimeMillis();
}
} else
{
A = (int)(System.currentTimeMillis() - B) / 1000;
b = (player2.getPlayerCor() + player1.getPlayerCor()) / 4;
refreshNum++;
if((P.backToGameMode() == 1 || P.backToGameMode() == 2 || P.backToGameMode() == 3) && (P.setting[3] == 0 && A >= 50 || P.setting[3] == 1 && A >= 100))
{
G = "超时!";
round--;
sCounter = 20;
overTime = true;
}
}
}
/**
* 得到对局时的刷新次数
* @return refreshNum long,对局时的刷新次数
*/
public long getRefreshNum()
{
return refreshNum;
}
/*
* 执行线程,设定菜单模式
*/
public void startThr()
{
I = true;
h = new a();
h.start();
P.setN(P.getN() - 1);
}
/*
* 运行主线程
*/
public void run() {
// System.out.println("----------------run 1-----------------");
B = System.currentTimeMillis();
while(!V) {
if(isShown()) {
c = false;
if(!bPause) {
player1.setState();
player2.setState();
}
if(sCounter > 0 && !bPause)
pauseGame();
setNew();
if(sCounter > 0) {
repaint();
} else {
int i1 = 6 + time.getHeight();
if(c)
i1 = 0;
repaint(0, i1, getWidth(), getHeight() - panel.getHeight() - i1);
}
serviceRepaints();
P.loadLights();
}
try {
Thread.currentThread();
Thread.sleep(25L);
} catch(Exception exception) { }
}
if (P.bGameHelp) {
P.initHelp1Menu();
return;
}
if(P.backToGameMode() == 0)
P.initModeMenu();
if(P.backToGameMode() == 1)
P.initModeMenu();
if(P.backToGameMode() == 2)
if(z)
P.initModeMenu();
else
if(!jugdeGameNum() && P.getN() > 0)
startThr();
else
P.atBack();
if(P.backToGameMode() == 3)
if(z)
P.initModeMenu();
else
if(!jugdeGameNum() && P.getN() > 0)
startThr();
else
P.back();
}
/*
* 线程类
*/
public class a extends Thread
{
private boolean a = false;
/*
* 运行线程
*/
public void run()
{
//System.out.println("----------------run 2-----------------");
B = System.currentTimeMillis();
while(!a)
{
if(isShown())
{
A = 10 - (int)(System.currentTimeMillis() - B) / 1000;
repaint();
serviceRepaints();
if(A <= 0)
{
stopThread();
if(P.backToGameMode() == 2)
P.atBack();
else
if(P.backToGameMode() == 3)
P.back();
}
}
try
{
Thread.currentThread();
Thread.sleep(25L);
}
catch(Exception exception) { }
}
}
// public saveIndex()
// {
// saveIndex = false;
// }
/*
* 停止线程
*/
public void stopThread()
{
a = true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -