📄 main.java
字号:
if(Lv == 0 )
{
ImageTools it = new ImageTools();
random = new Random();
img_Pause = it.getImage("menu1");
img_GameJM = it.getImage("jiemian");
img_distance = it.getImage("juli");
img_Npc = it.getImage("Npc");
img_choose = it.getImage("choose");
img_GameOver = it.getImage("gameover");
img_temp = it.getImage("run");
sp_role = new sprite(img_temp,roleW,roleH,0);
img_temp = it.getImage("speed");
sp_Speed = new sprite(img_temp,39,35,0);
sp_Speed.setPosition(2, 172);
img_temp = it.getImage("muscle");
sp_muscle = new sprite(img_temp,11,11,0);
sp_muscle.setPosition(6, 37);
img_temp = it.getImage("jump");
sp_jump = new sprite(img_temp,15,24,0);
sp_jump.setPosition(80, 80);
img_temp = it.getImage("state");
sp_state = new sprite(img_temp,29,28,0);
sp_state.setPosition(0, 0);
npcVector = new Vector();
NumTools = new NumImgTools(it.getImage("Number"), 12, 22);
it = null;
}
lm = null;
lm = new layerManager();
lm.append(sp_role);
InitGame();
System.out.println("Main.Load()");
lm.append(tl_way);
LoadOver = true;
}
break;
case LoadEnd:
Image img = null;
try {
img = Image.createImage("/pic/end.png");
} catch (IOException e) {
e.printStackTrace();
}
sp_end = new sprite(img,176,112,0);
SystemTime = 0;
FlowState = StateWin;
break;
}
}
private void Free()
{
switch (FreeState)
{
case FreeLogo :
ripple = null;
img_Logo1 = null;
img_Logo2 = null;
System.gc();
break;
case FreeMenuData:
img_Menu = null;
img_MenuStr = null;
sp_MenuStr = null;
System.gc();
break;
case FreeMainData:
System.gc();
break;
}
}
protected void paint(Graphics g)
{
bg.setColor(255,255,255);
bg.fillRect(0, 0, ScrWidth, ScrHeight);
switch (FlowState)
{
case StateLogo:
DrawLogo1(bg);
break;
case Loading:
DrawLoading(bg);
break;
case StateMenu:
DrawMenu(bg);
break;
case StateHelp:
DrawHelp(bg);
break;
case StateSet:
DrawSet(bg);
break;
case StateMain:
DrawMain(bg);
break;
case StateWin:
DrawWin(bg);
break;
case StateOver:
DrawOver(bg);
break;
case StatePause:
DrawPause(bg);
break;
case StateTop:
DrawTop(bg);
break;
}
g.drawImage(offBufferImage, 0,0, Graphics.LEFT|Graphics.TOP);
}
private void DrawLogo1(Graphics g)
{
g.setClip(0, 0, ScrWidth, ScrHeight);
ripple.paintImageFade(g, LogoTime, 4, 2, img_Logo1, 10, 30, 5);
}
private void DrawMenu(Graphics g)
{
g.setColor(0,0,0);
g.drawImage(img_Menu, 0, 0, 0);
sp_MenuStr.paint(g);
}
private void DrawHelp(Graphics g)
{
g.setColor(0,0,0);
}
private void DrawSet(Graphics g)
{
g.setColor(0,0,0);
g.fillRect(0, 0, ScrWidth, ScrHeight);
g.setColor(255,255,255);
g.drawString("声 音", ScrWidth/2-ft.stringWidth("声 音")/2, ScrHeight/2, 0);
}
private void DrawWin(Graphics g)
{
SystemTime++;
sp_end.paint(g);
if(SystemTime%10==0 && sp_end.getFrame()<5)
{
sp_end.nextFrame();
}
}
private void DrawOver(Graphics g)
{
g.drawImage(img_GameOver, ScrWidth/2-img_GameOver.getWidth()/2, 0, 0);
}
private void DrawPause(Graphics g)
{
g.drawImage(img_Pause, -30, 0, 0);
g.drawImage(img_choose, 30, MenuSdlcd*30+30, 0);
}
private void DrawTop(Graphics g)
{
g.setColor(147,159,128);
g.drawString("积分排行榜", 0, 0, 0);
g.drawString(ScnInputName.TopStr, 20, 20, 0);
}
private void DrawLoading(Graphics g)
{
// if(LoadIngNum<SystemTime)
// LoadIngNum++;
g.setColor(0,0,0);
// g.drawRect(75, 100, 50, 15);
// g.setColor(0,0,0);
// g.fillRect(75, 100, LoadIngNum, 15);
SystemTime++;
if(SystemTime >= 30)
{
SystemTime = 0;
LoadOver = false;
switch (LoadState)
{
case LoadLogo:
FlowState = StateLogo;
break;
case LoadMenuData:
FlowState = StateMenu;
break;
case LoadMainData:
FlowState = StateMain;
break;
}
}
g.drawString("Loading", ScrWidth/2-ft.stringWidth("Loading")/2, ScrHeight/2+50, 0);
}
public void input()
{
switch (FlowState)
{
case StateHelp:
KeyHelp(Key);
break;
case StateSet:
KeySet(Key);
break;
case StateMain:
KeyMain(Key);
break;
case StateWin:
KeyWin(Key);
break;
case StateOver:
KeyOver(Key);
break;
case StatePause:
KeyPause(Key);
break;
case StateTop:
KeyTop(Key);
break;
}
}
public void keyPressed(int keyCode)
{
if(!keyLock)
{
Key = keyCode;
switch (FlowState)
{
case StateMenu:
KeyMenu(keyCode);
break;
case StateMain:
switch (keyCode)
{
case RightCom:
if(FlowState == StateMain)
FlowState = StatePause;
else if(FlowState == StatePause)
FlowState = StateMain;
break;
case Enter:
case Num_5:
if( NpcState == NPC.tree)
{
JumpNum5--;
}
else if(!Fly && powerSpeed)
{
RoleState = RoleJump;
SystemTime = 0;
Fly = true;
keyLock = true;
SpeedStat -=30;
}
break;
}
break;
case StateOver:
if(keyCode != 0)
{
FlowState = Loading;
LoadState = LoadMainData;
}
break;
}
}
}
public void keyReleased(int keyCode)
{
Key = 0;
}
public void keyRepeated(int keyCode)
{
Key = 0;
}
private void KeyMenu(int keyCode)
{
switch (keyCode)
{
case UP:
case Num_2:
if(MenuSdlcd>0)
{
MenuSdlcd--;
sp_MenuStr.prevFrame();
}
break;
case DOWN:
case Num_8:
if(MenuSdlcd<sp_MenuStr.cols-1)
{
MenuSdlcd++;
sp_MenuStr.nextFrame();
}
break;
case Enter:
case Num_5:
switch (MenuSdlcd)
{
case 0:
// FlowState = LoadMainData;
FlowState = Loading;
LoadState = LoadMainData;
FreeState = FreeMenuData;
break;
case 1:
FlowState = StateSet;
break;
case 2:
FlowState = StateTop;
mid.billBoard.update();
ScnInputName.TopStr = mid.billBoard.showListTop3();
break;
case 3:
mid.exitMID();
Runing = false;
break;
}
break;
}
}
private void KeyHelp(int keyCode)
{
}
private void KeySet(int keyCode)
{
if(keyCode == RightCom)
{
FlowState = StateMenu;
}
}
private void KeyMain(int keyCode)
{
if(!fall && RoleState!=RoleReady && !keyLock)
{
switch (keyCode)
{
case 0:
if(RoleState<2)
RoleState++;
else if(RoleState>2)
RoleState--;
break;
case LEFT:
case Num_4:
if(RoleState>0 )
RoleState--;
if(sp_role.x>60)
{
if(WindowsX>0 && sp_role.x-WindowsX<ScrWidth/2 )
{
WindowsX-=10;
sp_role.move(-10,0);
}
else
sp_role.move(-10,0);
}
break;
case RIGHT:
case Num_6:
if(RoleState<4 )
RoleState++;
if(sp_role.x+sp_role.getWidth()<WindowsX+ScrWidth)
{
if(WindowsX+ScrWidth<tl_way.getWidth()-10 && sp_role.x>WindowsX+ScrWidth/2 )
{
WindowsX+=10;
sp_role.move(+10,0);
}
else
sp_role.move(+10,0);
}
break;
case UP:
case Num_2:
RoleState = 2;
if(sp_role.y>50)
sp_role.move(0,-5);
break;
case DOWN:
case Num_8:
RoleState=2;
if(sp_role.y+sp_role.getHeight()<ScrHeight)
sp_role.move(0,+5);
if(Speed>7)
{
Speed--;
SpeedStat-=5;
}
break;
}
}
else if(NpcState == NPC.crad)
{
if(keyCode == Enter)
{
}
}
}
private void KeyPause(int keyCode)
{
switch (keyCode)
{
case UP:
if(MenuSdlcd>0)
MenuSdlcd--;
break;
case DOWN:
if(MenuSdlcd<2)
MenuSdlcd++;
break;
case Enter:
switch (MenuSdlcd)
{
case 0:
FlowState = StateMain;
break;
case 1:
break;
case 2:
FlowState = Loading;
LoadState = LoadMenuData;
FreeState = FreeMainData;
Lv = 0;
break;
}
break;
// case RightCom:
// ThisState = StateMain;
// break;
}
}
private void KeyWin(int keyCode)
{
if(sp_end.getFrame()>=5 && keyCode !=0)
{
FlowState = Loading;
LoadState = LoadMenuData;
FreeState = FreeMainData;
if(!InputName)
checkScore();
}
}
private void KeyOver(int keyCode)
{
}
private void KeyTop(int keyCode)
{
switch (keyCode)
{
case RightCom:
FlowState = StateMenu;
break;
case LeftCom:
FlowState = StateMenu;
break;
}
}
private void GameFlow()
{
switch (FlowState)
{
case Loading: //加载
Free();
Load();
break;
case StateLogo: //LOGO运行
LogoTime++;
if(LogoTime>20)
{
FlowState = Loading;
LoadState = LoadMenuData;
FreeState = FreeLogo;
}
break;
case StateMenu:
break;
case StateHelp:
break;
case StateSet:
break;
case StateMain:
GameLogic();
break;
case StateWin:
break;
case StateOver:
break;
}
}
public void NextLv()
{
Lv++;
FlowState = Loading;
LoadState = LoadMainData;
}
public void checkScore() //检测Score
{
InputName = true;
scnInputName.clear();
mid.dis.setCurrent(scnInputName);
}
public void shake()
{
int temp = 3;
shakeNum++;
switch (RoleState)
{
case RoleFall:
case RoleFall2:
if(shakeNum %2 == 0)
{
temp*=-1;
}
WindowsX+=temp;
break;
}
}
public void run()
{
while (Runing)
{
input();
GameFlow();
repaint(0, 0, ScrWidth, ScrHeight);
serviceRepaints();
try {
Thread.sleep(100);
} catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -