⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpg_demo.java

📁 这是本人及团队成员用j2me开发的手机游戏《骑士荣耀》
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
						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 + -