📄 zoncanvas.java
字号:
spriteLead.setPosition(10, scrHeight - 64);
break;
case GAMESTAGE_THREE:
spriteLead.setPosition(64, scrHeight - 96);
break;
}
spriteLead.setSpriteIndex(0);
spriteLead.setMap(mainMap);
spriteLead.initImage();
spriteLead.setBloodCount(4);
/* spriteLead.setScore(tempScore);
spriteLead.setLifeCount(tempLifeCount);*/
return true;
}
private void initTop(int index, int offsetX, int offsetY, int start, int end) {
enemyTops[index].setPosition(offsetX, offsetY);
enemyTops[index].setStartOffset(start, end);
}
private boolean initTops() {
// init top enemy
switch (gameStage) {
case GAMESTAGE_ONE:
enemyTops = new EnemyJump[10];
for (int i = 0; i < enemyTops.length; i++) {
enemyTops[i] = new EnemyJump(scrWidth, scrHeight);
if (enemyTops[i] == null)
return false;
enemyTops[i].initSprite("enemysprite32_1", 32, 32, false);
enemyTops[i].setSpriteIndex(1);
enemyTops[i].setFrameSequence(1, 5);
enemyTops[i].setSpriteType(EnemyJump.JUMPTYPE_TOP);
}
initTop(0, 16 * 5, scrHeight - 16 * 6, 16 * 5, 16 * 8);
initTop(1, 16 * 19, scrHeight - 16 * 4, 16 * 19, 16 * 22);
initTop(2, 16 * 7, scrHeight - 16 * 13, 16 * 3, 16 * 7);
initTop(3, 16 * 13, scrHeight - 16 * 13, 16 * 9, 16 * 13);
initTop(4, 16 * 48, scrHeight - 16 * 6, 16 * 45, 16 * 48);
initTop(5, 16 * 52, scrHeight - 16 * 5, 16 * 50, 16 * 52);
initTop(6, 16 * 40, scrHeight - 16 * 13, 16 * 37, 16 * 40);
initTop(7, 16 * 59, scrHeight - 16 * 11, 16 * 56, 16 * 59);
initTop(8, 16 * 103, scrHeight - 16 * 6, 16 * 103, 16 * 103);
initTop(9, 16 * 120, scrHeight - 16 * 6, 16 * 115, 16 * 120);
break;
case GAMESTAGE_TWO:
break;
case GAMESTAGE_THREE:
// 复用此对象,8个为磨菇
enemyTops = new EnemyJump[8];
for (int i = 0; i < enemyTops.length; i++) {
enemyTops[i] = new EnemyJump(scrWidth, scrHeight);
if (enemyTops[i] == null)
return false;
enemyTops[i].initSprite("enemysprite32_3", 32, 24, false);
enemyTops[i].setSpriteIndex(2);
enemyTops[i].setFrameSequence(2, 4);
enemyTops[i].setSpriteType(EnemyJump.JUMPTYPE_MUSHROOM);
}
initTop(0, 16 * 15, scrHeight - 16 * 13 + 8, 16 * 15, 16 * 18);
initTop(1, 16 * 18, scrHeight - 16 * 3 + 8, 16 * 18, 16 * 22);
initTop(2, 16 * 36, scrHeight - 16 * 5 + 8, 16 * 36, 16 * 40);
initTop(3, 16 * 51, scrHeight - 16 * 12 + 8, 16 * 51, 16 * 55);
initTop(4, 16 * 50, scrHeight - 16 * 4 + 8, 16 * 50, 16 * 55);
initTop(5, 16 * 75, scrHeight - 16 * 6 + 8, 16 * 75, 16 * 77);
initTop(6, 16 * 85, scrHeight - 16 * 4 + 8, 16 * 85, 16 * 88);
initTop(7, 16 * 118, scrHeight - 16 * 4 + 8, 16 * 118, 16 * 121);
break;
}
for (int i = 0; i < enemyTops.length; i++) {
enemyTops[i].setMap(mainMap);
}
return true;
}
private void initSpring(int index, int offsetX, int offsetY, int start,
int end) {
enemySpring[index].setPosition(offsetX, offsetY);
enemySpring[index].setStartOffset(start, end);
}
private boolean initSpring() {
// init spring enemy
switch (gameStage) {
case GAMESTAGE_ONE:
enemySpring = new EnemyWalk[7];
for (int i = 0; i < enemySpring.length; i++) {
enemySpring[i] = new EnemyWalk(scrWidth, scrHeight);
if (enemySpring[i] == null)
return false;
enemySpring[i].initSprite("enemysprite32_share", 32, 32, false);
enemySpring[i].setSpriteIndex(6);
enemySpring[i].setFrameSequence(6, 7);
enemySpring[i].setSpriteType(EnemyWalk.SPRITETYPE_SPRING);
}
initSpring(0, 16 * 13, scrHeight - 16 * 5, 16 * 10, 16 * 13);
initSpring(1, 16 * 17, scrHeight - 16 * 4, 16 * 15, 16 * 17);
initSpring(2, 16 * 18, scrHeight - 16 * 12, 16 * 15, 16 * 18);
initSpring(3, 16 * 46, scrHeight - 16 * 11, 16 * 43, 16 * 46);
initSpring(4, 16 * 61, scrHeight - 16 * 5, 16 * 56, 16 * 61);
initSpring(5, 16 * 79, scrHeight - 16 * 5, 16 * 75, 16 * 79);
initSpring(6, 16 * 113, scrHeight - 16 * 8, 16 * 109, 16 * 113);
break;
case GAMESTAGE_TWO:
enemySpring = new EnemyWalk[6];
for (int i = 0; i < enemySpring.length; i++) {
enemySpring[i] = new EnemyWalk(scrWidth, scrHeight);
if (enemySpring[i] == null)
return false;
enemySpring[i].initSprite("enemysprite32_share", 32, 32, false);
enemySpring[i].setSpriteIndex(6);
enemySpring[i].setFrameSequence(6, 7);
enemySpring[i].setSpriteType(EnemyWalk.SPRITETYPE_SPRING);
}
initSpring(0, 16 * 9, scrHeight - 16 * 6, 16 * 5 + 8, 16 * 9 + 8);
initSpring(1, 16 * 14, scrHeight - 16 * 10, 16 * 12, 16 * 14);
initSpring(2, 16 * 42, scrHeight - 16 * 4, 16 * 39, 16 * 42);
initSpring(3, 16 * 66, scrHeight - 16 * 6, 16 * 63, 16 * 66);
initSpring(4, 16 * 80, scrHeight - 16 * 7, 16 * 77, 16 * 80);
initSpring(5, 16 * 92, scrHeight - 16 * 5, 16 * 88, 16 * 92);
break;
case GAMESTAGE_THREE:
enemySpring = new EnemyWalk[6];
for (int i = 0; i < enemySpring.length; i++) {
enemySpring[i] = new EnemyWalk(scrWidth, scrHeight);
if (enemySpring[i] == null)
return false;
enemySpring[i].initSprite("enemysprite32_share", 32, 32, false);
enemySpring[i].setSpriteIndex(6);
enemySpring[i].setFrameSequence(6, 7);
enemySpring[i].setSpriteType(EnemyWalk.SPRITETYPE_SPRING);
}
initSpring(0, 16 * 25, scrHeight - 16 * 9, 16 * 22, 16 * 25);
initSpring(1, 16 * 39, scrHeight - 16 * 7, 16 * 37, 16 * 39);
initSpring(2, 16 * 66, scrHeight - 16 * 10, 16 * 63, 16 * 66);
initSpring(3, 16 * 66, scrHeight - 16 * 5, 16 * 63, 16 * 66);
initSpring(4, 16 * 83, scrHeight - 16 * 4, 16 * 80, 16 * 83);
initSpring(5, 16 * 109, scrHeight - 16 * 6, 16 * 106, 16 * 109);
break;
}
for (int i = 0; i < enemySpring.length; i++) {
enemySpring[i].setMap(mainMap);
}
return true;
}
private void initBlueFoot(int index, int offsetX, int offsetY, int start,
int end) {
enemyBlueFeet[index].setPosition(offsetX, offsetY);
enemyBlueFeet[index].setStartOffset(start, end);
}
private boolean initBlueFeet() {
switch (gameStage) {
case GAMESTAGE_TWO:
enemyBlueFeet = new EnemyWalk[12];
for (int i = 0; i < enemyBlueFeet.length; i++) {
enemyBlueFeet[i] = new EnemyWalk(scrWidth, scrHeight);
if (enemyBlueFeet[i] == null)
return false;
enemyBlueFeet[i].initSprite("enemysprite32_2", 32, 24, false);
enemyBlueFeet[i].setSpriteIndex(1);
enemyBlueFeet[i].setFrameSequence(1, 3);
enemyBlueFeet[i].setSpriteType(EnemyWalk.SPRITETYPE_BLUEFOOT);
}
initBlueFoot(0, 16 * 5, scrHeight - 16 * 4 + 8, 16 * 5, 16 * 9);
initBlueFoot(1, 16 * 11, scrHeight - 16 * 4 + 8, 16 * 11, 16 * 14);
initBlueFoot(2, 16 * 17, scrHeight - 16 * 8 + 8, 16 * 17, 16 * 20);
initBlueFoot(3, 16 * 32, scrHeight - 16 * 4 + 8, 16 * 32, 16 * 36);
initBlueFoot(4, 16 * 44, scrHeight - 16 * 4 + 8, 16 * 44, 16 * 47);
initBlueFoot(5, 16 * 41, scrHeight - 16 * 13 + 8, 16 * 41, 16 * 45);
initBlueFoot(6, 16 * 75, scrHeight - 16 * 5 + 8, 16 * 75, 16 * 78);
initBlueFoot(7, 16 * 81, scrHeight - 16 * 5 + 8, 16 * 81, 16 * 84);
initBlueFoot(8, 16 * 75, scrHeight - 16 * 13 + 8, 16 * 75, 16 * 79);
initBlueFoot(9, 16 * 82, scrHeight - 16 * 11 + 8, 16 * 82, 16 * 84);
initBlueFoot(10, 16 * 112, scrHeight - 16 * 5 + 8, 16 * 112, 16 * 115);
initBlueFoot(11, 16 * 112, scrHeight - 16 * 9 + 8, 16 * 112, 16 * 115);
break;
}
for (int i = 0; i < enemyBlueFeet.length; i++) {
enemyBlueFeet[i].setMap(mainMap);
}
return true;
}
private void initBird(int index, int offsetX, int offsetY, int start,
int end, int top, int bottom) {
enemyBirds[index].setPosition(offsetX, offsetY);
enemyBirds[index].setStartOffset(start, end,
top - mainMap.getOffsetY(), bottom - mainMap.getOffsetY());
}
private boolean initBirds() {
// init bird enemy
switch (gameStage) {
case GAMESTAGE_ONE:
enemyBirds = new EnemyFly[8];
for (int i = 0; i < enemyBirds.length; i++) {
enemyBirds[i] = new EnemyFly(scrWidth, scrHeight);
if (enemyBirds[i] == null)
return false;
enemyBirds[i].initSprite("enemysprite32_share", 32, 32, false);
enemyBirds[i].setSpriteIndex(0);
}
initBird(0, 16 * 29, scrHeight - 16 * 5, 16 * 24, 16 * 29,
scrHeight - 16 * 6, scrHeight - 16 * 4);
initBird(1, 16 * 34, scrHeight - 16 * 9, 16 * 27, 16 * 34,
scrHeight - 16 * 10, scrHeight - 16 * 8);
initBird(2, 16 * 34, scrHeight - 16 * 14, 16 * 29, 16 * 34,
scrHeight - 16 * 15, scrHeight - 16 * 13);
initBird(3, 16 * 44, scrHeight - 16 * 6, 16 * 39, 16 * 44,
scrHeight - 16 * 7, scrHeight - 16 * 5);
initBird(4, 16 * 55, scrHeight - 16 * 10, 16 * 50, 16 * 55,
scrHeight - 16 * 11, scrHeight - 16 * 9);
initBird(5, 16 * 69, scrHeight - 16 * 7, 16 * 64, 16 * 69,
scrHeight - 16 * 8, scrHeight - 16 * 6);
initBird(6, 16 * 93, scrHeight - 16 * 8, 16 * 88, 16 * 93,
scrHeight - 16 * 9, scrHeight - 16 * 7);
initBird(7, 16 * 100, scrHeight - 16 * 11, 16 * 96, 16 * 100,
scrHeight - 16 * 12, scrHeight - 16 * 10);
break;
case GAMESTAGE_TWO:
enemyBirds = new EnemyFly[8];
for (int i = 0; i < enemyBirds.length; i++) {
enemyBirds[i] = new EnemyFly(scrWidth, scrHeight);
if (enemyBirds[i] == null)
return false;
enemyBirds[i].initSprite("enemysprite32_share", 32, 32, false);
enemyBirds[i].setSpriteIndex(0);
}
initBird(0, 16 * 23, scrHeight - 16 * 6, 16 * 20, 16 * 23,
scrHeight - 16 * 7, scrHeight - 16 * 6);
initBird(1, 16 * 30, scrHeight - 16 * 9, 16 * 26, 16 * 30,
scrHeight - 16 * 10, scrHeight - 16 * 9);
initBird(2, 16 * 41, scrHeight - 16 * 14, 16 * 37, 16 * 41,
scrHeight - 16 * 15, scrHeight - 16 * 14);
initBird(3, 16 * 54, scrHeight - 16 * 8, 16 * 51, 16 * 54,
scrHeight - 16 * 9, scrHeight - 16 * 8);
initBird(4, 16 * 58, scrHeight - 16 * 12, 16 * 53, 16 * 58,
scrHeight - 16 * 13, scrHeight - 16 * 12);
initBird(5, 16 * 78, scrHeight - 16 * 14, 16 * 75, 16 * 78,
scrHeight - 16 * 15, scrHeight - 16 * 14);
initBird(6, 16 * 100, scrHeight - 16 * 7, 16 * 97, 16 * 100,
scrHeight - 16 * 8, scrHeight - 16 * 7);
initBird(7, 16 * 106, scrHeight - 16 * 7, 16 * 102, 16 * 106,
scrHeight - 16 * 9, scrHeight - 16 * 7);
break;
case GAMESTAGE_THREE:
enemyBirds = new EnemyFly[7];
for (int i = 0; i < enemyBirds.length; i++) {
enemyBirds[i] = new EnemyFly(scrWidth, scrHeight);
if (enemyBirds[i] == null)
return false;
enemyBirds[i].initSprite("enemysprite32_share", 32, 32, false);
enemyBirds[i].setSpriteIndex(0);
}
initBird(0, 16 * 8, scrHeight - 16 * 6, 16 * 4, 16 * 8,
scrHeight - 16 * 7, scrHeight - 16 * 6);
initBird(1, 16 * 13, scrHeight - 16 * 10, 16 * 9, 16 * 13,
scrHeight - 16 * 11, scrHeight - 16 * 10);
initBird(2, 16 * 34, scrHeight - 16 * 4, 16 * 31, 16 * 34,
scrHeight - 16 * 5, scrHeight - 16 * 4);
initBird(3, 16 * 34, scrHeight - 16 * 9, 16 * 29, 16 * 34,
scrHeight - 16 * 10, scrHeight - 16 * 9);
initBird(4, 16 * 61, scrHeight - 16 * 9, 16 * 57, 16 * 61,
scrHeight - 16 * 10, scrHeight - 16 * 9);
initBird(5, 16 * 73, scrHeight - 16 * 8, 16 * 69, 16 * 73,
scrHeight - 16 * 9, scrHeight - 16 * 8);
initBird(6, 16 * 97, scrHeight - 16 * 7, 16 * 93, 16 * 97,
scrHeight - 16 * 8, scrHeight - 16 * 7);
break;
}
for (int i = 0; i < enemyBirds.length; i++) {
enemyBirds[i].setMap(mainMap);
}
return true;
}
private void initStepStone(int index, int offsetX, int offsetY, int start,
int end) {
stepStone[index].setPosition(offsetX, offsetY);
stepStone[index].setStartOffset(start, end);
}
private void initStepFloat(int index, int offsetX, int offsetY, int start,
int end, int top, int bottom) {
stepYellow[index].setPosition(offsetX, offsetY);
stepYellow[index].setStartOffset(start, end, top - mainMap.getOffsetY(), bottom - mainMap.getOffsetY());
}
private boolean initStepStone() {
switch (gameStage) {
case GAMESTAGE_ONE:
stepStone = new StepStone[10];
for (int i = 0; i < stepStone.length; i++) {
stepStone[i] = new StepStone(scrWidth, scrHeight);
if (stepStone[i] == null)
return false;
stepStone[i].initSprite("enemysprite32_1", 32, 32, false);
stepStone[i].setSpriteIndex(0);
stepStone[i].setSpriteType(StepStone.STEPTYPE_STONE);
}
initStepStone(0, 16 * 24, scrHeight - 16 * 4 + 8, 16 * 24, 16 * 27);
initStepStone(1, 16 * 25, scrHeight - 16 * 7, 16 * 25, 16 * 29);
initStepStone(2, 16 * 27, scrHeight - 16 * 7, 16 * 27, 16 * 31);
initStepStone(3, 16 * 30, scrHeight - 16 * 12 + 8, 16 * 30, 16 * 34);
initStepStone(4, 16 * 63, scrHeight - 16 * 4, 16 * 63, 16 * 66);
initStepStone(5, 16 * 65, scrHeight - 16 * 4, 16 * 65, 16 * 68);
initStepStone(6, 16 * 87, scrHeight - 16 * 6 + 8, 16 * 87, 16 * 91);
initStepStone(7, 16 * 92, scrHeight - 16 * 7, 16 * 92, 16 * 95);
initStepStone(8, 16 * 94, scrHeight - 16 * 7, 16 * 94, 16 * 97);
initStepStone(9, 16 * 98, scrHeight - 16 * 9, 16 * 98, 16 * 100);
break;
case GAMESTAGE_TWO:
stepStone = new StepStone[6];
for (int i = 0; i < stepStone.length; i++) {
stepStone[i] = new StepStone(scrWidth, scrHeight);
if (stepStone[i] == null)
return false;
stepStone[i].initSprite("enemysprite32_2", 32, 24, false);
stepStone[i].setSpriteIndex(0);
stepStone[i].setSpriteType(StepStone.STEPTYPE_STONE);
}
initStepStone(0, 16 * 19, scrHeight - 16 * 3, 16 * 19, 16 * 22);
initStepStone(1, 16 * 23, scrHeight - 16 * 6, 16 * 23, 16 * 28);
initStepStone(2, 16 * 49, scrHeight - 16 * 5, 16 * 49, 16 * 53);
initStepStone(3, 16 * 51, scrHeight - 16 * 9, 16 * 51, 16 * 57);
initStepStone(4, 16 * 97, scrHeight - 16 * 4, 16 * 97, 16 * 102);
initStepStone(5, 16 * 99, scrHeight - 16 * 4, 16 * 99, 16 * 104);
break;
case GAMESTAGE_THREE:
// 第三关StepStone复用作5个静止绿叶, stepYellow6个漂浮的黄叶,
stepYellow = new StepStone[6];
for (int i = 0; i < stepYellow.length; i++) {
stepYellow[i] = new StepStone(scrWidth, scrHeight);
if (stepYellow[i] == null)
return false;
stepYellow[i].initSprite("enemysprite32_3", 32, 24, false);
stepYellow[i].setSpriteIndex(1);
stepYellow[i].setSpriteType(StepStone.STEPTYPE_YELLOWLEAF);
}
stepStone = new StepStone[5];
for (int i = 0; i < stepStone.length; i++) {
stepStone[i] = new StepStone(scrWidth, scrHeight);
if (stepStone[i] == null)
return false;
stepStone[i].initSprite("enemysprite32_3", 32, 24, false);
stepStone[i].setSpriteIndex(0);
stepStone[i].setSpriteType(StepStone.STEPTYPE_GREENLEAF);
}
// YELLOWLEAF
initStepFloat(0, 16 * 30 + 8, scrHeight - 16 * 8, 16 * 30 + 8, 16 * 32 + 8,
scrHeight - 16 * 8, scrHeight - 16 * 4);
initStepFloat(1, 16 * 32 + 8, scrHeight - 16 * 8, 16 * 32 + 8, 16 * 34 + 8,
scrHeight - 16 * 8, scrHeight - 16 * 4);
initStepFloat(2, 16 * 58, scrHeight - 16 * 11, 16 * 58, 16 * 59,
scrHeight - 16 * 11, scrHeight - 16 * 4);
initStepFloat(3, 16 * 60, scrHeight - 16 * 11, 16 * 60, 16 * 61,
scrHeight - 16 * 11, scrHeight - 16 * 4);
initStepFloat(4, 16 * 89, scrHeight - 16 * 10, 16 * 91, 16 * 93,
scrHeight - 16 * 10, scrHeight - 16 * 5);
initStepFloat(5, 16 * 91, scrHeight - 16 * 10, 16 * 93, 16 * 95,
scrHeight - 16 * 10, scrHeight - 16 * 5);
// GREENLEAF
stepStone[0].setPosition(16 * 12, scrHeight - 16 * 9);
stepStone[1].setPosition(16 * 31, scrHeight - 16 * 2);
stepStone[2].setPosition(16 * 46 + 8, scrHeight - 16 * 9 + 8);
stepStone[3].setPosition(16 * 82, scrHeight - 16 * 9);
stepStone[4].setPosition(16 * 118, scrHeight - 16 * 6);
for (int i = 0; i < stepYellow.length; i++) {
stepYellow[i].setMap(mainMap);
stepYellow[i].setMoveDirection(ZonSprite.MOVEDIRECTION_RIGHT);
}
break;
}
for (int i = 0; i < stepStone.length; i++) {
stepStone[i].setMap(mainMap);
stepStone[i].setMoveDirection(ZonSprite.MOVEDIRECTION_RIGHT);
}
return true;
}
private boolean initBoxes() {
switch (gameStage) {
case GAMESTAGE_ONE:
magicBoxes = new MagicBox[23];
for (int i = 0; i < magicBoxes.length; i++) {
magicBoxes[i] = new MagicBox(scrWidth, scrHeight);
if (magicBoxes[i] == null)
return false;
magicBoxes[i].initSprite("enemysprite16_share", 16, 16, false);
magicBoxes[i].setFrameSequence(0, 0);
}
magicBoxes[0].setPosition(16 * 4, scrHeight - 16 * 12);
magicBoxes[1].setPosition(16 * 2, scrHeight - 16 * 13);
magicBoxes[2].setPosition(16 * 3, scrHeight - 16 * 13);
magicBoxes[3].setPosition(16 * 2, scrHeight - 16 * 12);
magicBoxes[4].setPosition(16 * 3, scrHeight - 16 * 12);
magicBoxes[5].setPosition(16 * 54, scrHeight - 16 * 8);
magicBoxes[6].setPosition(16 * 55, scrHeight - 16 * 8);
magicBoxes[7].setPosition(16 * 54, scrHeight - 16 * 7);
magicBoxes[8].setPosition(16 * 55, scrHeight - 16 * 5);
magicBoxes[9].setPosition(16 * 54, scrHeight - 16 * 4);
magicBoxes[10].setPosition(16 * 55, scrHeight - 16 * 4);
magicBoxes[11].setPosition(16 * 74, scrHeight - 16 * 6);
magicBoxes[12].setPosition(16 * 75, scrHeight - 16 * 5);
magicBoxes[13].setPosition(16 * 99, scrHeight - 16 * 4);
magicBoxes[14].setPosition(16 * 100, scrHeight - 16 * 4);
magicBoxes[15].setPosition(16 * 99, scrHeight - 16 * 3);
magicBoxes[16].setPosition(16 * 105, scrHeight - 16 * 9);
magicBoxes[17].setPosition(16 * 106, scrHeight - 16 * 9);
magicBoxes[18].setPosition(16 * 107, scrHeight - 16 * 9);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -