📄 rpg_demo.java
字号:
player.realize();
player.setLoopCount(-1);
player.start();
}
catch (MediaException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
senlin=new Map_senlin();
bg=senlin.BG_cell;
pz=senlin.PZ_cell;
senlin=null;
npc_Name_king="";
npc_Name_tiejiang="";
npc_Name_shangdian="";
mapindex=MAP_SENLIN;
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,160,48,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,416,80,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,480,208,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,352,400,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,368,496,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,176,496,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,96,320,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,304,64,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,464,144,"森林怪"));
vec.addElement(new Enemy(guaiwu_senlin_Image,32,32,1,5,0,50,Hero.spend_Move-1,480,400,"森林怪"));
for(int i=0;i<vec.size();i++)
lm.insert((Enemy)vec.elementAt(i), 1);
tl_BG=new TiledLayer(32,32,map_cunzi_Image,16,16);
tl_PZ=new TiledLayer(32,32,map_cunzi_Image,16,16);
Hero.setPosition(240,32);
//Hero.setPosition(256, 16);
// Hero.setFrameSequence(movedown);
// Hero.setFrame(6);
break;
}
for(int i=0;i<bg.length;i++)
{
for(int j=0;j<bg[i].length;j++)
{
tl_BG.setCell(j,i,bg[i][j]);
tl_PZ.setCell(j,i,pz[i][j]);
}
}
lm.append(tl_PZ);
lm.append(tl_BG);
flushGraphics();
} catch (RuntimeException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void input() //按键控制2.0
{
int keyState = getKeyStates(); //按键状态
switch(state_Main)
{
case MAIN_STATE_MENU: //画完菜单查看是否有按键输入,对按键输入取出不同的状态
switch(keyState)
{
case UP_PRESSED:
if(menu_Selected-1>=0)
menu_Selected--;
break;
case DOWN_PRESSED:
if(menu_Selected+1<mainMenu.length)
menu_Selected++;
break;
case FIRE_PRESSED:
switch(menu_Selected)
{
case 0:
state_Main=MAIN_STATE_GAMERUNNING;
state_Child=CHILD_STATE_GAMELOADING;
DrawGame(); //为了使程序始终在循环中调用资源,数组,而把初始状态设置在这里
menu_Image=null;
break;
case 1:
// LoadGame();
break;
case 2:
state_Main=MAIN_STATE_ABOUT; //如果选择关于则转到关于状态下
about_level=0; //当前显示的第一行设为最原始的第一行(没有下移过的)
about_maxlevel=0; //最大可以下移的行数也设为0
//this.addCommand(back); //添加软键
//添加一些有用的代码
break;
case 3:
controller.exitMIDlet();
break;
}
break;
}
break;
case MAIN_STATE_GAMERUNNING:
switch(state_Child)
{
case CHILD_STATE_MAPS:
switch(state_Map)
{
case MAP_STATE_NOMORE:
{
// **
// 按键操控精灵
if ((keyState & LEFT_PRESSED) != 0)//向左走
{
if (PlayerState != LEFT_PRESSED)
{
PlayerState = LEFT_PRESSED;
getfx=HERO_MOVE_FX_LEFT;
Hero.setFrameSequence(moveleft);
}
else
{
Hero.nextFrame();
}
if(Hero.getX() - Hero.spend_Move >= 0)
{
Hero.move(-Hero.spend_Move, 0);
Hero.px-=Hero.spend_Move;
}
else
Hero.setPosition(0, Hero.getY());
}
else if ((keyState & RIGHT_PRESSED) != 0)//向右走
{
if (PlayerState != RIGHT_PRESSED)
{
PlayerState = RIGHT_PRESSED;
getfx=HERO_MOVE_FX_RIGHT;
Hero.setFrameSequence(moveright);
//
}
else
{
Hero.nextFrame();
}
if(Hero.getX() + Hero.getWidth() < tl_BG.getWidth())
{
Hero.move(Hero.spend_Move, 0);
Hero.px+=Hero.spend_Move;
}
else
Hero.setPosition(tl_BG.getWidth()-Hero.getWidth(), Hero.getY());
}
else if ((keyState & UP_PRESSED) != 0)//向上走
{
if (PlayerState != UP_PRESSED)
{
PlayerState = UP_PRESSED;
getfx=HERO_MOVE_FX_UP;
Hero.setFrameSequence(moveup);
}
else
{
Hero.nextFrame();
}
if(Hero.getY() - Hero.spend_Move >= 0)
{
Hero.move(0, -Hero.spend_Move);
Hero.py-=Hero.spend_Move;
}
else
Hero.setPosition(Hero.getX(), 0);
}
else if ((keyState & DOWN_PRESSED) != 0)//向下走
{
if (PlayerState != DOWN_PRESSED)
{
PlayerState = DOWN_PRESSED;
getfx=HERO_MOVE_FX_DOWN;
Hero.setFrameSequence(movedown);
}
else
{
Hero.nextFrame();
}
if(Hero.getY() + Hero.getHeight() < tl_BG.getHeight())
{
Hero.move(0, Hero.spend_Move);
Hero.py+=Hero.spend_Move;
}
else
Hero.setPosition(Hero.getX(), tl_BG.getHeight()-Hero.getHeight());
}else if((keyState&GAME_A_PRESSED)!=0)
{
Hero.Add_HP();
//System.out.println("1 preesed!");
}
/*else if((keyState&Canvas.KEY_STAR)!=0)
{
}*/
else if((keyState&GAME_B_PRESSED)!=0)
{
Hero.Add_MP();
//System.out.println("3 preesed!");
}
else if ((keyState & FIRE_PRESSED) != 0)
{
if(((npc_king.y > (Hero.py-30)) && (npc_king.y < (Hero.py+30))&&(npc_king.x > (Hero.px - 30)) &&( npc_king.x < (Hero.px + 30))))
{
//DrawTacking();
tacking_name_Selected=1;
state_Map=MAP_STATE_TACKING;
}else if(((npc_tiejiang.y > (Hero.py-30)) && (npc_tiejiang.y < (Hero.py+30))&&(npc_tiejiang.x > (Hero.px - 30)) &&( npc_tiejiang.x < (Hero.px + 30))))
{
tacking_name_Selected=2;
state_Map=MAP_STATE_TACKING;
}
if (PlayerState !=FIRE_PRESSED)
{
PlayerState = FIRE_PRESSED;
//Hero.setFrameSequence(action4);
switch(getfx)
{
case HERO_MOVE_FX_LEFT: Hero.setFrameSequence(action3);break;
case HERO_MOVE_FX_RIGHT: Hero.setFrameSequence(action2);break;
case HERO_MOVE_FX_DOWN: Hero.setFrameSequence(action1);break;
case HERO_MOVE_FX_UP: Hero.setFrameSequence(action4);break;
}
//Hero.nextFrame();
}
else
{
Hero.nextFrame();
for(int i=0;i<vec.size();i++)
{
if(Hero.getFrame()==3&&(((Enemy)vec.elementAt(i)).ny > (Hero.getY()-10)) &&
(((Enemy)vec.elementAt(i)).ny< (Hero.getY()+10))&&
(((Enemy)vec.elementAt(i)).nx> (Hero.getX() -10))&&
(((Enemy)vec.elementAt(i)).nx< (Hero.getX() +10)))
((Enemy)(vec.elementAt(i))).Enemy_HURT(Hero.attack);
}
}
}
}break;//end nomore
case MAP_STATE_CHANGE:
switch(keyState)
{
case UP_PRESSED:
if(gamemenu_Selected-1>=0)
gamemenu_Selected--;
break;
case DOWN_PRESSED:
if(gamemenu_Selected+1<gameMenu.length)
gamemenu_Selected++;
break;
case FIRE_PRESSED:
switch(gamemenu_Selected)
{
case 0:
DrawManssage();
break;
case 1:
break;
case 2:
state_Map=MAP_STATE_NOMORE;
break;
case 3:
vec.removeAllElements();
for(int i=0;i<vec.size();i++)
lm.remove((Enemy)vec.elementAt(i));
try
{
player.stop();
player.close();
is=getClass().getResourceAsStream("/background.mid"); //创建播放器
player=Manager.createPlayer(is,"audio/midi");
player.realize();
player.setLoopCount(-1); //开始播放MENU菜单的音乐
player.start();
}
catch (MediaException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
state_Main=MAIN_STATE_MENU;
break;
}
break;
}
break;
case MAP_STATE_TACKING:
switch(keyState)
{
case FIRE_PRESSED:
// if(tacking_Selected+1<npc_king_tacking.length)
tacking_Selected++;
// if(tacking_Selected==npc_king_tacking.length)
// state_Map=MAP_STATE_NOMORE;
break;
}
break;
}break;
////end swtich_state_map
case CHILD_STATE_CHANGEMAP:
break;
}
break;//end swtich_state_child
case MAIN_STATE_GAMEOVER:
break;
case MAIN_STATE_ABOUT:
switch(keyState)
{
case FIRE_PRESSED:
state_Main=MAIN_STATE_MENU;
}
} //end swtich_main_state
} //end input
protected void keyPressed(int keyCode) //按键控制1.0
{
super.keyPressed(keyCode);
this.keyCode=getGameAction(keyCode);
switch(state_Main)
{
case MAIN_STATE_MENU:
break;
case MAIN_STATE_GAMERUNNING:
switch(state_Child)
{
case CHILD_STATE_MAPS:
switch(state_Map)
{
case MAP_STATE_NOMORE:
switch(keyCode)
{
case KEY_POUND:
//System.out.println("pound preesed!");
state_Map=MAP_STATE_CHANGE;
break;
case KEY_STAR:
break;
}
break;
case MAP_STATE_CHANGE:break;
case MAP_STATE_TACKING:break;
}break;
case CHILD_STATE_CHANGEMAP:break;
}
break;
case MAIN_STATE_GAMEOVER:break;
case MAIN_STATE_ABOUT:break;
}
}
}//end Rpg_DEMO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -