📄 manager.java
字号:
break;
case 6: // '\006'
i1 = i;
j1 = j - byte2 - 1;
break;
case 7: // '\007'
i1 = (i - k) + 4;
j1 = (j - byte2) + 4;
break;
}
if (i1 <= 0)
{
i1 = i + k;
}
if (WIDTH - 5 <= i1)
{
i1 = i - girlLoc[byte0][players[1][3]][2];
}
if (j1 <= 0)
{
j1 = j + l;
}
if (HEIGHT - 5 - 1 <= j1)
{
j1 = j - girlLoc[byte0][players[1][3]][3];
}
girlTarget[0] = i1;
girlTarget[1] = j1;
girlTarget[2] = byte0;
girlTarget[3] = getFastDistance(i1, j1, players[0][0], players[0][1]) /
3;
setGirlState( (byte) 1);
}
public void moveGirl()
{
if (players[1][2] != girlTarget[2])
{
if (girlCount == 0)
{
players[1][2] = getDirectTowardPoint(girlTarget[0],
girlTarget[1], players[1][0], players[1][1]);
}
else
if (girlCount < 4)
{
if (girlCount == 2)
{
players[1][2] = getDirectTowardPoint(girlTarget[0],
girlTarget[1], players[1][0], players[1][1]);
}
move(players, 1, (byte) players[1][2], (byte) girlTarget[3]);
}
else
{
players[1][0] = girlTarget[0];
players[1][1] = girlTarget[1];
players[1][2] = girlTarget[2];
}
}
else
{
players[1][0] = girlTarget[0];
players[1][1] = girlTarget[1];
players[1][2] = girlTarget[2];
}
}
public boolean isCollisionWithHero()
{
boolean flag = false;
for (int j = nativeNum - 1; j >= 0; j--)
{
int i = getFastDistance(players[0][0], players[0][1], natives[j][0],
natives[j][1]);
if (i < 12)
{
if (natives[j][3] == 1 || natives[j][3] == 0)
{
natives[j][3] = 6;
return true;
}
}
else
if (i < 45)
{
if (threadCount < 9 && natives[j][3] == 0 && !flag)
{
if (threadCount == 4 || threadCount == 8)
{
byte byte0 = getDirectTowardPoint(players[0][0],
players[0][1], natives[j][0], natives[j][1]);
natives[j][0] += nativeLocPAdd[byte0 / 2][0];
natives[j][1] += nativeLocPAdd[byte0 / 2][1];
natives[j][3] = 1;
flag = true;
playSound("/native.ott", 4, 1);
}
}
else
if (8 < threadCount && natives[j][3] == 0)
{
byte byte1 = getDirectTowardPoint(players[0][0],
players[0][1], natives[j][0], natives[j][1]);
natives[j][0] += nativeLocPAdd[byte1 / 2][0];
natives[j][1] += nativeLocPAdd[byte1 / 2][1];
natives[j][3] = 1;
playSound("/native.ott", 4, 1);
}
}
}
return false;
}
private void checkCollisionWithBullet()
{
byte byte0 = -1;
boolean flag = false;
byte byte1 = 40;
for (int j = nativeNum - 1; j >= 0; j--)
{
boolean flag1 = false;
if (getFastDistance(players[0][0], players[0][1], natives[j][0],
natives[j][1]) < byte1 &&
(natives[j][3] == 1 || natives[j][3] == 0))
{
if (natives[j][0] == players[0][0])
{
if (natives[j][1] < players[0][1])
{
flag1 = players[0][2] == 2;
}
else
{
flag1 = players[0][2] == 6;
}
}
else
if (natives[j][1] == players[0][1])
{
if (natives[j][0] < players[0][0])
{
flag1 = players[0][2] == 4;
}
else
{
flag1 = players[0][2] == 0;
}
}
else
{
boolean flag2 = players[0][0] < natives[j][0];
int i = ( (natives[j][1] - players[0][1]) * 100) /
(natives[j][0] - players[0][0]);
switch (players[0][2])
{
case 0: // '\0'
flag1 = -57 < i && i <= 57 && flag2;
break;
case 7: // '\007'
flag1 = 26 < i && i <= 373 && flag2;
break;
case 6: // '\006'
flag1 = (i <= -173 || 173 < i) &&
players[0][1] < natives[j][1];
break;
case 5: // '\005'
flag1 = -373 < i && i <= -26 && !flag2;
break;
case 4: // '\004'
flag1 = -57 < i && i <= 57 && !flag2;
break;
case 3: // '\003'
flag1 = 26 < i && i <= 373 && !flag2;
break;
case 2: // '\002'
flag1 = (i <= -173 || 173 < i) &&
natives[j][1] < players[0][1];
break;
case 1: // '\001'
flag1 = -373 < i && i <= -26 && flag2;
break;
}
}
if (flag1)
{
natives[j][3] = 7;
dieNativeNum++;
score++;
}
}
}
}
public void drawTree(Graphics g, Image image)
{
for (int i = treeArray.length - 1; i >= 0; i--)
{
int j = i % 2;
int tmp1 = treeArray[i][1] * 5 - obstacleLoc[1 + j][4];
int tmp2 = treeArray[i][0] * 5 - obstacleLoc[1 + j][5];
int tmp3 = obstacleLoc[1 + j][2];
int tmp4 = obstacleLoc[1 + j][3];
/*
g.setClip(treeArray[i][1] * 5 - obstacleLoc[1 + j][4], treeArray[i][0] * 5 - obstacleLoc[1 + j][5],
obstacleLoc[1 + j][2], obstacleLoc[1 + j][3]);
g.drawImage(image, treeArray[i][1] * 5 - obstacleLoc[1 + j][4] - obstacleLoc[1 + j][0],
treeArray[i][0] * 5 - obstacleLoc[1 + j][5] - obstacleLoc[1 + j][1], 20);
*/
g.setClip(tmp1, tmp2,
tmp3, tmp4);
g.drawImage(image, tmp1 - obstacleLoc[1 + j][0],
tmp2 - obstacleLoc[1 + j][1], 20);
}
}
public void drawBoard(Graphics g, Image image, Image image1, Image image2)
{
drawEmptyBlock(g, image2, 0, 0, ROWS / 2, COLUMNS / 2);
clipAdrawImage(g, image, 0, 0, 120, 18, 0, 18);
clipAdrawImage(g, image, 0, HEIGHT - 18, 120, 18, 0, 0);
clipAdrawImage(g, image1, WIDTH - 18, GROUND_START_ROW * 5, 18, 120, 0,
0);
clipAdrawImage(g, image1, 0, GROUND_START_ROW * 5, 18, 120, 18, 0);
clipAdrawImage(g, image1, WIDTH - 18, 0, 18, 26, 0, 0);
clipAdrawImage(g, image1, WIDTH - 18, HEIGHT - 26, 18, 26, 0, 94);
clipAdrawImage(g, image1, 0, 0, 18, 26, 18, 0);
clipAdrawImage(g, image1, 0, HEIGHT - 26, 18, 26, 18, 94);
}
public void drawRoad(Graphics g, Image image)
{
if (bgArray[GROUND_START_ROW + 9][COLUMNS - 2] == 4)
{
drawEmptyBlock(g, image, WIDTH - obstacleLoc[0][2],
(GROUND_START_ROW + 9) * 5, 3, 1);
clipAdrawImage(g, image, WIDTH - 13, (GROUND_START_ROW + 9) * 5, 13,
7, 17, 0);
clipAdrawImage(g, image, WIDTH - 13,
(GROUND_START_ROW + 15) * 5 - 9, 13, 9, 17, 7);
}
if (bgArray[1][9] == 4)
{
drawEmptyBlock(g, image, 45, 0, 1, 3);
clipAdrawImage(g, image, 45, 0, 7, 13, 0, 12);
clipAdrawImage(g, image, 66, 0, 9, 13, 7, 12);
}
if (bgArray[GROUND_START_ROW + 9][1] == 4)
{
drawEmptyBlock(g, image, 0, (GROUND_START_ROW + 9) * 5, 3, 1);
clipAdrawImage(g, image, 0, (GROUND_START_ROW + 9) * 5, 13, 7, 29,
0);
clipAdrawImage(g, image, 0, (GROUND_START_ROW + 15) * 5 - 9, 13, 9,
29, 7);
}
if (bgArray[ROWS - 2][9] == 4)
{
drawEmptyBlock(g, image, 45, HEIGHT - obstacleLoc[0][3], 1, 2);
clipAdrawImage(g, image, 45, HEIGHT - 13, 7, 13, 0, 0);
clipAdrawImage(g, image, 66, HEIGHT - 13, 9, 13, 7, 0);
}
boolean flag = false;
for (int i = obstacle2[level].length - 1; i >= 0; i--)
{
int j = GROUND_START_ROW + obstacle2[level][i][0];
byte byte0 = obstacle2[level][i][1];
int k = i % 2;
g.setClip(byte0 * 5 - obstacleLoc[3 + k][4],
j * 5 - obstacleLoc[3 + k][5], obstacleLoc[3 + k][2],
obstacleLoc[3 + k][3]);
g.drawImage(image,
byte0 * 5 - obstacleLoc[3 + k][4] - obstacleLoc[3 +
k][0],
j * 5 - obstacleLoc[3 + k][5] - obstacleLoc[3 + k][1],
20);
}
}
private void drawEmptyBlock(Graphics g, Image image, int i, int j, int k,
int l)
{
for (int i1 = 0; i1 < k; i1++)
{
for (int j1 = 0; j1 < l; j1++)
{
g.setClip(i + j1 * obstacleLoc[0][2], j + i1 * obstacleLoc[0][3],
obstacleLoc[0][2], obstacleLoc[0][3]);
g.drawImage(image,
(i + j1 * obstacleLoc[0][2]) - obstacleLoc[0][0],
(j + i1 * obstacleLoc[0][3]) - obstacleLoc[0][1],
20);
}
}
}
public void drawObjects(Graphics g, Image image, Image image1, Image image2,
Image image3)
{
int i = players[0][2];
int j = players[0][3];
int l;
int l1;
if (players[0][3] == 3)
{
if ( -1 < bullet)
{
bulletCount = ( (byte) (bulletCount <= 0 ? 1 : 0));
int k = players[0][0] - bulletLoc[i * 2 + bulletCount][4];
int k1 = players[0][1] - bulletLoc[i * 2 + bulletCount][5];
clipAdrawImage(g, image3, k, k1,
bulletLoc[i * 2 + bulletCount][2],
bulletLoc[i * 2 + bulletCount][3],
bulletLoc[i * 2 + bulletCount][0],
bulletLoc[i * 2 + bulletCount][1]);
if (bulletCount == 0)
{
playSound("/fire.ott", 3, 1);
}
}
l = players[0][0] + heroRifleLoc[i][6];
l1 = players[0][1] + heroRifleLoc[i][7];
if (bulletCount == 1)
{
setHeroState( (byte) 0);
}
}
else
{
l = players[0][0] + heroRifleLoc[i][4];
l1 = players[0][1] + heroRifleLoc[i][5];
}
drawNative(g, image2);
clipAdrawImage(g, image3, l, l1, heroRifleLoc[i][2], heroRifleLoc[i][3],
heroRifleLoc[i][0], heroRifleLoc[i][1]);
if (players[0][3] == 1)
{
if (heroCount == 1)
{
heroCount = 0;
setHeroState( (byte) 0);
}
else
{
heroCount++;
}
int i1 = players[0][0] - heroLoc[i][j + heroCount][2] / 2;
int i2 = players[0][1] - heroLoc[i][j + heroCount][3] / 2;
clipAdrawImage(g, image, i1, i2, heroLoc[i][j + heroCount][2],
heroLoc[i][j + heroCount][3],
heroLoc[i][j + heroCount][0],
heroLoc[i][j + heroCount][1]);
}
else
{
int j1 = players[0][0] - heroLoc[i][j][2] / 2;
int j2 = players[0][1] - heroLoc[i][j][3] / 2;
clipAdrawImage(g, image, j1, j2, heroLoc[i][j][2], heroLoc[i][j][3],
heroLoc[i][j][0], heroLoc[i][j][1]);
}
i = players[1][2];
j = players[1][3];
if (players[1][3] == 1)
{
if (girlCount == 4)
{
girlCount = 0;
setGirlState( (byte) 0);
}
else
{
girlCount++;
}
}
int k2 = j + girlCount % 2;
clipAdrawImage(g, image1, players[1][0] - girlLoc[i][k2][4],
players[1][1] - girlLoc[i][k2][5], girlLoc[i][k2][2],
girlLoc[i][k2][3], girlLoc[i][k2][0], girlLoc[i][k2][1]);
}
public void drawCollision(Graphics g, Image image, Image image1)
{
int i = subSituCount % 3;
clipAdrawImage(g, image, players[0][0] - collisionLoc[i][4],
players[0][1] - collisionLoc[i][5], collisionLoc[i][2],
collisionLoc[i][3], collisionLoc[i][0],
collisionLoc[i][1]);
drawNative(g, image1);
if (soundCount++ < 4)
{
playSound("/collision.ott", 7, 1);
}
}
public void drawNative(Graphics g, Image image)
{
nativeCount = nativeCount <= 0 ? ++nativeCount : 0;
for (int j1 = nativeNum - 1; j1 >= 0; j1--)
{
int i = natives[j1][2];
switch (natives[j1][3])
{
case 1: // '\001'
clipAdrawImage(g, image,
natives[j1][0] -
nativeLoc[i][nativeCount][2] / 2,
natives[j1][1] -
nativeLoc[i][nativeCount][3] / 2,
nativeLoc[i][nativeCount][2],
nativeLoc[i][nativeCount][3],
nativeLoc[i][nativeCount][0],
nativeLoc[i][nativeCount][1]);
break;
case 7: // '\007'
playSound("/nativedie.ott", 5, 1);
int j = nativeLoc[8][i / 4][2] / 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -