📄 gamemanager.java
字号:
mA256 = mA256 + (ve << 8) / 40;
mA = mA256 >> 8;
for(int n = 0; n < 2; n++)
ar[n].tick();
for(int n = 0; n < 4; n++)
os[n].tick();
av.tick();
if(da <= 0)
{
vAvv();
isGO = true;
isAv = false;
}
if(isGO)
{
tur = 0;
ve256 -= 1024;
ve = ve256 >> 8;
if(ve < 0)
{
ve = 0;
isAv = false;
mi.mtempo = mi.tempo;
}
}
if(mA > MeT[li])
{
stTi = true;
if(!isViA)
{
vGio();
isGO = true;
} else
{
isGO = true;
}
}
if(!stTi)
tS = mi.ct(System.currentTimeMillis() - tIn);
}
}
}
public void run()
{
Thread cT = Thread.currentThread();
try
{
while(cT == aT)
{
long sTi = System.currentTimeMillis();
if(!iP)
if(can.isShown())
{
if(!hBS)
hBS = true;
tick();
} else
if(hBS)
pause();
if(can.isShown() && vo++ % 2 == 0 && !isSe)
{
can.repaint(0, 0, 176, 208);
can.serviceRepaints();
}
long tTa = System.currentTimeMillis() - sTi;
if(tTa < 40L)
synchronized(this)
{
wait(40L - tTa);
}
else
Thread.yield();
}
}
catch(Exception e) { }
}
public synchronized void start()
{
aT = new Thread(this);
aT.start();
}
public synchronized void stop()
{
aT = null;
}
public void pause()
{
synchronized(this)
{
iP = true;
}
}
public synchronized boolean isPaused()
{
return iP;
}
public void resume()
{
synchronized(this)
{
iP = false;
}
}
public Canvas getCanvas()
{
return can;
}
void closePressed()
{
if(!iP)
pause();
mi.gameManagerMainMenu(isViA || isViG);
}
public void keyPressed(int kC)
{
if(isSe)
{
if(kC == 53 || kC == -5)
{
iAu = se.pa;
isSe = false;
isCa = true;
se.libera();
se = null;
caricaDati();
return;
}
int p = se.pa;
if(kC == -3 || kC == 52)
p--;
else
if(kC == -4 || kC == 54)
p++;
if(p > 3)
p = 0;
else
if(p < 0)
p = 3;
if(se.pa != p)
{
se.pa = p;
if(can.isShown())
{
can.repaint(0, 0, 176, 208);
can.serviceRepaints();
}
}
return;
}
if(iP && can.isShown())
{
resume();
} else
{
if(kC == -1 || kC == -3 || kC == -4 || kC == 49 || kC == 50 || kC == 51)
pAc = true;
else
if(kC == -2 || kC == 48 || kC == 55 || kC == 56)
pDc = true;
if(kC == -3 || kC == 52 || kC == 49 || kC == 55)
pSi = true;
else
if(kC == -4 || kC == 54 || kC == 51 || kC == 57)
pDe = true;
if(kC == 53 || kC == -5)
pTu = true;
}
}
public void keyReleased(int keyCode)
{
pAc = false;
pDc = false;
pDe = false;
pSi = false;
pTu = false;
}
private void fill(int indice, int n1, int n2, boolean presente)
{
for(int n = n1; n >= n2; n--)
str[indice][n] = presente;
}
boolean isGameOver()
{
return isViA || isViG;
}
private synchronized void caricaDati()
{
auG = new Image[3];
String nomi[] = {
"ho", "ma", "mi", "ni"
};
try
{
for(int n = 0; n < 3; n++)
auG[n] = Image.createImage("/i/" + nomi[iAu] + "/" + (n + 1) + ".png");
}
catch(IOException e) { }
dxA = (short)auG[0].getWidth();
dyA = (short)auG[0].getHeight();
sT = tuM[iAu];
for(iAuAv = ra.nextInt() & 0x3; iAuAv == iAu; iAuAv = ra.nextInt() & 0x3);
Image pa = null;
Image ci = null;
try
{
if(!gC)
{
pa = Image.createImage("/i/sf/pa.png");
ci = Image.createImage("/i/sf/ci.png");
ni = Image.createImage("/i/fi/ni.png");
fd = Image.createImage("/i/va/fd.png");
iLa = new Immagine(Image.createImage("/i/ar/la.png"));
iSe = new Immagine(Image.createImage("/i/ar/pa.png"));
iAr = new Immagine(Image.createImage("/i/ar/ar.png"));
iTa = new Immagine(Image.createImage("/i/os/ta.png"));
iFu = new Immagine(Image.createImage("/i/os/fu.png"));
}
iAv = new Immagine(Image.createImage("/i/" + nomi[iAuAv] + "/1.png"));
}
catch(IOException e) { }
if(!gC)
{
sf = Image.createImage(528, 94);
Graphics g = sf.getGraphics();
for(int x = 0; x < 528; x++)
g.drawImage(ci, x, 0, 20);
g.drawImage(pa, 0, 27, 20);
iniS = new int[110];
dxS = new int[110];
dxL = new int[110];
liS = new int[110];
r2562 = new int[110];
for(int n = 1; n < 76; n++)
{
iniS[n] = 67 - (n * 102) / 76;
dxS[n] = 20 + (n * 102) / 76;
dxL[n] = (n * 8) / 76;
if((n * 8) / 76 < 1)
dxL[n] = 1;
r2562[n] = (0x10000 * dxS[n]) / 102;
}
for(int n = 76; n < 110; n++)
{
liS[n] = 67 - (n * 102) / 76;
dxS[n] = 20 + (n * 102) / 76;
r2562[n] = r2562[75];
}
r2562[0] = r2562[1];
str = new boolean[20][100];
for(int in = 0; in < 20; in++)
{
boolean pr = true;
int yr = -in;
int yp = (3025 - 18 * yr) / (55 + yr);
while(yr < 165)
{
yr += 10;
int ypp = yp;
yp = (3025 - 18 * yr) / (55 + yr);
fill(in, ypp, yp, pr);
pr = !pr;
}
}
ar = new Arredo[2];
for(int n = 0; n < 2; n++)
ar[n] = new Arredo(this, 110 * n);
os = new Ostacolo[4];
for(int n = 0; n < 2; n++)
os[n] = new Ostacolo(this, n, iFu, 60, 3);
for(int n = 2; n < 4; n++)
os[n] = new Ostacolo(this, n, iTa, 120, 1);
} else
{
for(int n = 0; n < 4; n++)
os[n].re();
for(int n = 0; n < 2; n++)
ar[n].re();
}
av = new Avversario(this, iAv, veM[iAuAv], tuM[iAuAv]);
xAG = 34;
pi = new int[10][2];
li = mi.livello;
mi.mtempo = -1L;
isCa = false;
isCD = true;
isAv = false;
isGO = false;
gC = true;
}
void resetta()
{
se = new Selezione(mi);
isSe = true;
isCa = false;
xSf256 = 0;
xSf = 0;
poSt = 0;
poSt256 = 0;
fr = 0;
po = 0;
duSe = 256;
ve256 = 0;
ve = 0;
iAG = 0;
st256 = 0;
ca = 0x271000;
mA256 = 0;
da = 100;
pTu = false;
hBS = false;
iP = false;
isViG = false;
isViA = false;
isCD = false;
isAv = false;
isGO = false;
stTi = false;
cD = 3000;
tS = "0.00.00";
tur = 0;
mi.mtempo = -1L;
li = mi.livello;
}
private void qS(int it[][], int nE)
{
qs(it, 0, nE - 1);
}
private void qs(int it[][], int le, int ri)
{
int i = le;
int j = ri;
int z = it[(le + ri) / 2][0];
do
{
while(it[i][0] > z && i < ri)
i++;
for(; z > it[j][0] && j > le; j--);
if(i <= j)
{
int y0 = it[i][0];
int y1 = it[i][1];
it[i][0] = it[j][0];
it[i][1] = it[j][1];
it[j][0] = y0;
it[j][1] = y1;
i++;
j--;
}
} while(i <= j);
if(le < j)
qs(it, le, j);
if(j < ri)
qs(it, i, ri);
}
void vAvv()
{
if(isViG)
{
return;
} else
{
isViA = true;
isViG = false;
mi.vinto = false;
return;
}
}
void vGio()
{
if(isViA)
{
return;
} else
{
isViA = false;
isViG = true;
mi.vinto = true;
return;
}
}
void diAr(DirectGraphics dg)
{
int pR = MeT[li] - mA;
if(pR < 0 || pR > 222)
return;
int xp = (5576 - 25 * pR) / (76 + pR);
if(xp < 1 || xp > 109)
{
return;
} else
{
int dx = 172 * r2562[xp] >> 16;
int dy = 26 * r2562[xp] >> 16;
iAr.rid(dg, liS[xp] + (2 * dxS[xp] - dx) / 2, 94 - dy - xp / 3, dx, 0);
return;
}
}
/*
static
{
MPT = 40;
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -