📄 gamescreen.java
字号:
// fall through
case 1: // '\001'
if(_rebound == 0)
{
if(_startY < 80)
_startY += 10;
if(_startY == 80)
_rebound++;
} else
if(_rebound == 1)
{
if(_startY > 60)
_startY -= 5;
if(_startY == 60)
_rebound++;
} else
if(_rebound == 2)
{
if(_startY < 80)
_startY += 5;
if(_startY == 80)
_rebound++;
} else
if(_rebound == 3)
{
if(_startY > 70)
_startY -= 2;
if(_startY == 70)
_rebound++;
} else
if(_rebound == 4)
{
if(_startY < 80)
_startY += 2;
if(_startY == 80)
_rebound++;
} else
{
_cptStart++;
if(_cptStart >= 30)
_gameState = 2;
}
Draw_Game(g);
break;
case 2: // '\002'
if(_keyMap[0] > 0 || _keyMap[1] > 0)
{
_keyMap[0] = -1;
_keyMap[1] = -1;
_gameState = 3;
_curs = 0;
if(_isMusic == 0)
music.stopMusic(0);
return;
}
if(_keyMap[4] > 0 || _keyMap[10] > 0)
{
_dir = -1;
if(_cptTurn > 0)
_cptTurn = 0;
else
if(_cptTurn > -6)
_cptTurn--;
} else
if(_keyMap[5] > 0 || _keyMap[12] > 0)
{
_dir = 1;
if(_cptTurn < 0)
_cptTurn = 0;
else
if(_cptTurn < 6)
_cptTurn++;
} else
{
_dir = 0;
if(_cptTurn > 0)
_cptTurn--;
else
if(_cptTurn < 0)
_cptTurn++;
}
_roadX += _dir * 2;
if(_cptMain % 2 == 0)
_roadX -= _curvX;
else
if(_curvX > 0)
_roadX -= 2 - _weight;
else
if(_curvX < 0)
_roadX += 2 - _weight;
_X = 88 + (_roadX >> 1);
if(_cptBoost > 0 && _Y > 198)
_Y--;
else
if(_cptBoost == 0 && _Y < 203)
_Y++;
if(_X < _xLeft - 5 || _X > _xRight + 5)
{
_offRoad = true;
_cptOff++;
_speedMax = 60;
_shakeY = (byte)(1 - _shakeY);
} else
{
_offRoad = false;
_cptOff = 0;
if(_cptShake > 0)
_shakeY = (byte)(1 - _shakeY);
else
_shakeY = 0;
if(_cptBoost > 0)
_speedMax = 140;
else
if(_kart == 0)
_speedMax = 100;
else
if(_kart == 1)
_speedMax = 90;
else
if(_kart == 2)
_speedMax = 120;
}
if(_cptOff >= 50)
{
_X = 88;
_offRoad = false;
_cptOff = 0;
_shakeY = 0;
_cptBoost = 0;
_speed = 0;
_roadX = 0;
}
_anim = (byte)(3 + (_cptTurn >> 1));
_scroll -= _dir * 2;
if(_level == 0)
{
if(_scroll > 0)
_scroll = -187;
else
if(_scroll < -187)
_scroll = 0;
} else
if(_level == 1)
{
if(_scroll > 0)
_scroll = -189;
else
if(_scroll < -189)
_scroll = 0;
} else
if(_level == 2 || _level == 4)
{
if(_scroll < -88)
_scroll = 44;
else
if(_scroll > 132)
_scroll = 0;
} else
if(_level == 3)
if(_scroll < -36)
_scroll = 18;
else
if(_scroll > 158)
_scroll = 0;
if(_speed > 0)
{
if(_yellow1[0] <= 5)
_yellow1[0] += 1 + _speed / 30;
else
if(_yellow1[0] <= 10)
_yellow1[0] += 2 + _speed / 30;
else
if(_yellow1[0] <= 22)
_yellow1[0] += 4 + _speed / 30;
else
if(_yellow1[0] <= 34)
_yellow1[0] += 6 + _speed / 30;
else
_yellow1[0] += 8 + _speed / 30;
if(_yellow2[0] <= 5)
_yellow2[0] += 1 + _speed / 30;
else
if(_yellow2[0] <= 10)
_yellow2[0] += 2 + _speed / 30;
else
if(_yellow2[0] <= 22)
_yellow2[0] += 4 + _speed / 30;
else
if(_yellow2[0] <= 34)
_yellow2[0] += 6 + _speed / 30;
else
_yellow2[0] += 8 + _speed / 30;
}
_yellow1[1] = 1 + _yellow1[0] / 3;
_yellow2[1] = 1 + _yellow2[0] / 3;
if(_yellow1[0] > 54 + _speed / 20)
{
_yellow1[0] = 0;
_yellow1[1] = 1;
}
if(_yellow2[0] > 54 + _speed / 20)
{
_yellow2[0] = 0;
_yellow2[1] = 1;
}
_cptDecor += _speed / 10;
if(_cptDecor >= 80)
{
New_Object(0);
_cptDecor = 0;
}
_cptObj += _speed / 10;
if(_cptObj > 300)
{
New_Object(2);
_cptObj = 0;
}
if(_cptSumo >= SUMO_TIME[_level])
{
New_Object(3);
_cptSumo = 0;
}
if(_obj._state <= 1)
_obj.Update();
if(_finish._state <= 1)
_finish.Update();
if(_sumo._state <= 1)
_sumo.Update();
for(byte byte0 = 0; byte0 < 3; byte0++)
_decor[byte0].Update();
if(_obj._state == 1 && _obj._zoom == 4 && _X + 25 >= _obj._posX && _X - 25 <= _obj._posX + OBJ_WIDTH[_obj._nb])
{
if(_obj._nb == 2)
{
_boost++;
} else
{
_speed = 0;
_cptShake = 1;
}
_obj._state = 3;
}
if(_sumo._state == 1 && _sumo._zoom >= 3 && _X + 25 >= _sumo._posX && _X - 25 <= _sumo._posX + 41 && _sumo._posY + 150 >= _Y - 19)
if(_sumo._posY + 150 > _Y + 5)
{
_speed -= 50;
if(_speed < 0)
_speed = 0;
_sumo._posY -= 5;
} else
if(_sumo._posX + 20 <= _X)
{
_speed -= 20;
if(_speed < 0)
_speed = 0;
_sumo._posX -= 10;
_X += 10;
} else
{
_speed -= 20;
if(_speed < 0)
_speed = 0;
_sumo._posX += 10;
_X -= 10;
}
if(_finish._state == 1 && _cptLap == 0 && _finish._posY + 150 >= _Y)
{
_lap++;
_cptLap = 1;
_cptRoad = 0;
_cptRace = 0;
_cptBend = 0;
if(_lap > 3)
_cptFinish = 1;
}
if(_keyMap[3] > 0 || _keyMap[14] > 0)
{
_speed -= _acc * 2;
if(_speed < 0)
_speed = 0;
} else
if(_keyMap[11] > 0 && _boost > 0 && _cptBoost == 0)
{
_boost--;
_acc += 2;
_cptBoost = 1;
} else
if(_speed < _speedMax)
_speed += _acc;
if(_speed > _speedMax)
_speed -= _acc;
if(_curvX < _curvWanted && _cptMain % 2 == 0)
_curvX++;
if(_curvX > _curvWanted && _cptMain % 2 == 0)
_curvX--;
if(System.currentTimeMillis() - _roadTime >= 1000L)
{
_cptRace += _speed / 10;
_roadTime = System.currentTimeMillis();
if(_cptRace >= _race[_level][_cptRoad * 3] && _finish._state == 3)
if(_race[_level][_cptRoad * 3 + 2] == 0)
{
_finish._state = 0;
} else
{
_bendLength = _race[_level][_cptRoad * 3 + 1];
_curvWanted = (byte)_race[_level][_cptRoad * 3 + 2];
_cptBend = 0;
_cptRoad++;
}
if(_bendLength > 0)
{
_cptBend += _speed / 10;
if(_cptBend == _bendLength)
{
_curvWanted = 0;
_bendLength = 0;
}
}
}
if(_startY > -30)
{
_startY -= 10;
_startX += 8;
}
if(System.currentTimeMillis() - _sec >= 1000L)
{
_time++;
_sec = System.currentTimeMillis();
if(_sumo._state == 3)
{
_cptSumo++;
int i = Abs(_rand.nextInt() % 6);
if(_speed >= 100 && i < 1)
_cptSumo++;
else
if(_speed >= 120 && i < 2)
_cptSumo++;
}
}
if(_cptBoost > 0)
{
_cptBoost++;
if(_cptBoost > 50)
{
_cptBoost = 0;
_acc -= 2;
}
}
if(_cptShake > 0)
{
_cptShake++;
if(_cptShake > 10)
_cptShake = 0;
}
if(_cptLap > 0)
{
_cptLap++;
if(_cptLap > 20)
_cptLap = 0;
}
if(_cptFinish > 0)
{
_cptFinish++;
if(_cptFinish > 15)
if(_position == 0)
{
_gameState = 5;
_img[23] = new Image2("/gfx/girls_racing_win.png", 1, 1, true);
} else
{
_gameState = 4;
_score = 1000 - _time;
if(_score < 0)
_score = 0;
_tmpScore = 0;
}
}
Draw_Game(g);
break;
case 3: // '\003'
g.setColor(0xff70bc85);
g.fillRect(5, 40, 166, 124);
g.setColor(-1);
g.fillRect(10, 45, 156, 114);
Graphics _tmp = g;
mu.print(g, 60, 60, 20, 4);
Graphics _tmp1 = g;
mu.print(g, 60, 100, 21, 4);
Graphics _tmp2 = g;
mu.print(g, 60, 120, 22, 4);
if(_keyMap[2] > 0 || _keyMap[8] > 0 || _keyMap[3] > 0 || _keyMap[14] > 0)
{
Reset_Direction_Keys();
_curs = (byte)(1 - _curs);
}
Graphics _tmp3 = g;
Graphics _tmp4 = g;
_img[4].drawFrame(g, 12, 92 + 20 * _curs, _cptCurs / 2, 16 + 4);
_cptCurs++;
if(_cptCurs > 7)
_cptCurs = 0;
if(_keyMap[11] <= 0 && _keyMap[18] <= 0 && _keyMap[0] <= 0)
break;
_keyMap[11] = -1;
_keyMap[18] = -1;
_keyMap[0] = -1;
if(_curs == 0)
{
_gameState = 2;
if(_isMusic == 0)
music.startMusic(0);
} else
{
_mainState = 3;
_cptLoad = 0;
}
break;
case 5: // '\005'
Graphics _tmp5 = g;
Graphics _tmp6 = g;
_img[23].draw(g, 0, 0, 16 + 4);
if(_keyMap[11] <= 0 && _keyMap[18] <= 0 && _keyMap[0] <= 0)
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -