📄 stagecanvas.java
字号:
/* System.out.println("this.isTogether()"+this.isTogether());
for(int i=0;i<6;i++){
System.out.println("spriteArray["+i+"].X" + spriteArray[i].X);
System.out.println("spriteArray["+i+"].Y" + spriteArray[i].Y);
System.out.println("spriteArray["+i+"].T" + spriteArray[i].T);
}
System.out.println("this.tI"+this.tI);
System.out.println("spriteArray[this.tI].X"+spriteArray[this.tI].X);
System.out.println("spriteArray[this.tI].Y"+spriteArray[this.tI].Y);
System.out.println("this.tWhat"+this.tWhat);
System.out.println("you lose!**********************************************************************");
// CanoeingMIDlet.quitApp();
*/
}
else { //不撞时,初始化
tempHitLife = 0;
}
if (this.fps == 2) {
this.drawBackground(g);
this.spriteArrayAdjust();
for (int i = 1; i < 6; i++) {
this.drawTypeImages(g, spriteArray[i].T, spriteArray[i].Y,
spriteArray[i].X, spriteArray[i].direction);
}
this.drawFrame(g); //绘制边框
//System.out.println("midSpeed"+midSpeed);
if (!isHit || tWhat == 3) { //如果真,就画船 || tWhat==1
lowSpeed = 4; //0,6每次上升的像素
midSpeed = 6; //1,5每次上升的像素
midhighSpeed = 8; //1,5每次上升的像素
highSpeed = 15; //每次上升的像素
this.drawTypeImages(g, spriteArray[0].T, spriteArray[0].Y,
spriteArray[0].X, spriteArray[0].direction);
}
this.fps = 0;
}
else {
this.fps++;
}
if (lifeValue == 0) { //结束游戏
this.saveData();
eng.gameState = eng.STATE_GAMEOVER;
}
this.isRepaint = true;
break;
case Engine.STATE_LOAD: /////////继续游戏
this.isRepaint = false;
// this.drawLoadingScreen(g);
break;
case Engine.STATE_PAUSE:
this.drawPause(g);
break;
case Engine.STATE_PLAYMENU: ////////////////play游戏中途菜单
this.drawPlayMenuScreen(g); //游戏中菜单
break;
case Engine.STATE_GAMEOVER:
StopWatchStartTime = this.resetStopWatch();
/// this.resetStopWatch();
//System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+this.eng.gameState);
this.drawGameoverScreen(g);
this.eng.gameState = this.eng.STATE_LOSE;
this.isRepaint = true;
break;
case Engine.STATE_LOSE: //失败
if (getStopWatchTime() < 2000) {
eng.runnerSleep(2000); ///gameOver.png 停留2秒
}
else {
this.drawLoseScreen(g);
}
this.isRepaint = true;
// if (images[5] != null) { //释放资源
// images[5] = null;
// }
lifeValue = 10; //重新初始化
break;
case Engine.STATE_VOLUME: //声音
this.isRepaint = false;
//isSound=false;
this.drawMusicSelectScreen(g);
break;
}
// if (g!=old)
/// old.drawImage(offScreen, 0, 0, this.ANCHOR0_LT);
}
//////////////////////////////////////////////////
public int tWhat; //撞到哪个类型物体
public int tI; //撞到哪个物体
//这里的1,2,3对应Sprite对象的T
//0,人//1,鳄鱼//2,树//3,激流/4,漩涡//5,小石头//6,中石头//7,big石头
final int sprite0high = 18; //船 22
final int sprite0width = 18; //22
final int sprite1high = 10; //
final int sprite1width = 25; // 35 10
final int sprite2high = 13; //
final int sprite2width = 16; // 20 15
final int sprite3high = 21; //
final int sprite3width = 20; // 25 23
final int sprite4high = 18; //
final int sprite4width = 18; // 25 22
final int sprite5high = 8; //
final int sprite5width = 13; //18 11
final int sprite6high = 9; //
final int sprite6width = 14; //18 12
final int sprite7high = 19; //
final int sprite7width = 18; //22 23
//int tt; //撞的类型
int high = 0;
int width = 0;
public boolean isTogether() {
for (int i = 1; i < 6; i++) {
switch (spriteArray[i].T) {
case 1:
high = sprite1high;
width = sprite1width;
break;
case 2:
high = sprite2high;
width = sprite2width;
break;
case 3:
high = sprite3high;
width = sprite3width;
break;
case 4:
high = sprite4high;
width = sprite4width;
break;
case 5:
high = sprite5high;
width = sprite5width;
break;
case 6:
high = sprite6high;
width = sprite6width;
break;
case 7:
high = sprite7high;
width = sprite7width;
break;
}
//所有的创
if ( ( ( (spriteArray[0].Y + sprite0width) >= spriteArray[i].Y &&
spriteArray[0].Y <= spriteArray[i].Y)
||
(spriteArray[0].Y <= (spriteArray[i].Y + width) &&
spriteArray[0].Y >= spriteArray[i].Y))
&&
( ( (spriteArray[0].X + sprite0high) >= spriteArray[i].X &&
(spriteArray[0].X <= spriteArray[i].X)) ||
(spriteArray[0].X <= (spriteArray[i].X + high) &&
spriteArray[0].X >= spriteArray[i].X))) {
this.tWhat = spriteArray[i].T;
this.tI = i;
// System.out.println("" + this.tWhat);
// System.out.println("" + spriteArray[i].X + " " + spriteArray[i].Y);
return true;
}
}
this.tI = 0;
this.tWhat = 0;
return false;
}
////////////////////////////////////////////////
//**************************************************************************************************
public void spriteArrayInit() {
int sumNextX = 176;//128; //累计纵坐标 128 RSQ
spriteArray[0] = new Sprite();
for (int i = 1; i < 6; i++) {
spriteArray[i] = new Sprite(this.thisMaxScore);
spriteArray[i].X = sumNextX;
sumNextX = spriteArray[i].X + spriteArray[i].nextX;
}
}
public void spriteArrayAdjust() {
if (spriteArray[1].X < 10) { //物体消失
//***********************************************************************
//下 是记录得分
//0,人//1,鳄鱼//2,树//3,激流/4,漩涡//5,小石头//6,中石头//7,
if (spriteArray[1].T == 2 || spriteArray[1].T == 5 ||
spriteArray[1].T == 6 || spriteArray[1].T == 7) {
thisMaxScore += 5;
}
if (spriteArray[1].T == 4 || spriteArray[1].T == 3) {
thisMaxScore += 10;
}
if (spriteArray[1].T == 1) {
thisMaxScore += 15;
}
//*****************************************************************************8
for (int i = 1; i < 5; i++) {
spriteArray[i].X = spriteArray[i + 1].X;
spriteArray[i].Y = spriteArray[i + 1].Y;
spriteArray[i].T = spriteArray[i + 1].T;
spriteArray[i].nextX = spriteArray[i + 1].nextX;
}
spriteArray[5] = null;
spriteArray[5] = new Sprite(this.thisMaxScore);
spriteArray[5].X = spriteArray[4].X + spriteArray[4].nextX;
}
switch (this.canKey) { //根据按键
case 0: //无按键
switch (spriteArray[0].direction) {
case 0:
/* */
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y >= 13) {
spriteArray[0].Y -= xx;
}
break;
case 6:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y <= 140) { //22 10
spriteArray[0].Y += xx;
}
break;
case 1:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midSpeed;
}
if (spriteArray[0].Y >= 13) {
spriteArray[0].Y -= xx;
}
break;
case 2:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midhighSpeed;
}
if (spriteArray[0].Y >= 13) {
spriteArray[0].Y -= xx;
}
break;
case 3:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= highSpeed;
}
break;
case 4:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midhighSpeed;
}
if (spriteArray[0].Y <= 140) {
spriteArray[0].Y += xx;
}
break;
case 5:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midSpeed;
}
if (spriteArray[0].Y <= 140) {
spriteArray[0].Y += xx;
}
break;
}
break;
case 1: //左键
if (spriteArray[0].direction != 0) {
spriteArray[0].direction--;
}
switch (spriteArray[0].direction) {
case 0:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y >= 13) { //1
spriteArray[0].Y -= xx;
}
break;
case 6:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y <= 93) { //127
spriteArray[0].Y += xx;
}
break;
case 1:
for (int i = 1; i < 6; i++) {//6
spriteArray[i].X -= midSpeed;
}
if (spriteArray[0].Y >= 13) { //2813
spriteArray[0].Y -= xx;
}
break;
case 2:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midhighSpeed;
}
if (spriteArray[0].Y >= 13) { //13
spriteArray[0].Y -= xx;
}
break;
case 3:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= highSpeed;
}
break;
case 4:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midhighSpeed;
}
if (spriteArray[0].Y <= 93) {
spriteArray[0].Y += xx;
}
break;
case 5:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midSpeed;
}
if (spriteArray[0].Y <= 93) {
spriteArray[0].Y += xx;
}
break;
}
break;
case 2: //右键
if (spriteArray[0].direction != 6) {
spriteArray[0].direction++;
}
switch (spriteArray[0].direction) {
case 0:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y >= 13) {
spriteArray[0].Y -= xx;
}
break;
case 6:
// System.out.println("spriteArray[0].Y" + spriteArray[0].Y);
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= lowSpeed;
}
if (spriteArray[0].Y <= 140) { //110
spriteArray[0].Y += xx;
}
break;
case 1:
for (int i = 1; i < 6; i++) {
spriteArray[i].X -= midSpeed;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -