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

📄 thlacv.java

📁 一个初学者的RPG手机游戏作品
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
import java.io.IOException;
import java.io.InputStream;


import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;


public class ThLaCV extends Canvas implements Runnable {
	
	MIDlet ml;
	ThLaLogic tllgc;
	ThLaMenu tlmn;
	ThLaAction tlact;
	ThLaSpActSkill tlsas;
	ThLaActMenu tlam;
	Thread th;
	Image imgMenu;
	Image imgMenu_T;
	Image imgaction,imgLogL;
	InputStream GameOpen=getClass().getResourceAsStream("/res/GameOpen.mid");
	InputStream levelup=getClass().getResourceAsStream("/res/LevelUp.mid");
	InputStream mapOne=getClass().getResourceAsStream("/res/mapOne.mid");
	InputStream act=getClass().getResourceAsStream("/res/act.mid");
	Player playOne,playTwo,playThree,playFore;
	int keycode;
	static int mnNum;  
	int lastmnNum;
	int curmenu,exitmenu,musicmenu;       
	int menuNum,startNum,musicNum;            
	int aMenuNum;             //攻击状态值
	int cursorNum;            
	int stateMenuNum;         //菜单状态值
	int stateNowMenuNum;     
	int stateSpNum;           //菜单选项中的第几位主角
	int spAbleNum;            //记录当前是第几位主角
	int color;                //变幻的颜色
	int actOverBackTime;
	int item_spNum;
	int bjtime;
	int mapANum;
	int spOneAcN,spTwoAcN,spThreeAcN,spMonsOneAcN;
	boolean spOneHI,spOneSI,spTwoHI,spTwoSI,spThreeHI,spThreeSI;
	int lastspOneHI,lastspOneSI,lastspTwoHI,lastspTwoSI,lastspThreeHI,lastspThreeSI;
	int spMgcToNpcNum,spActNum,spOneActNum,spTwoActNum,spThreeActNum;
	
	
	public ThLaCV(MIDlet ml)
	{
		this.ml=ml;		
		if(tllgc==null)
		{
			tllgc=new ThLaLogic();
		}
		if(tlmn==null)
		{
			tlmn=new ThLaMenu();
		}	
		if(tlact==null)
		{
			tlact=new ThLaAction();
		}
		if(tlsas==null)
		{
			tlsas=new ThLaSpActSkill();
		}
		if(tlam==null)
		{
			tlam=new ThLaActMenu();
		}
		if(th==null)
		{
			th=new Thread(this);
		}
		mnNum=0;
		mapANum=0;
		spOneHI=false;
		spOneSI=false;
		spTwoHI=false;
		spTwoSI=false;
		spThreeHI=false;
		spThreeSI=false;
		musicmenu=0;
		try {
			imgMenu=Image.createImage("/res/menu.png");
			imgMenu_T=Image.createImage("/res/win2.png");
			imgaction=Image.createImage("/res/action.png");
			imgLogL=Image.createImage("/res/logo1.png");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		this.setFullScreenMode(true);		    			
		th.start();
	}
	protected void paint(Graphics g) {
		// TODO Auto-generated method stub	
		
		switch (mnNum) {            /**用mnNum的值选择该完成哪一部分*/
		case ThLaKeyNum.MENU:		/**进入菜单选项*/
			if(bjtime<10)
			{
				g.drawImage(imgLogL, 0, 0, Graphics.TOP|Graphics.LEFT);			/**将LOGO画到指定位置*/
			}
			else {
				g.drawImage(imgMenu_T, 0, 0, Graphics.TOP|Graphics.LEFT); 			
				tlmn.MenuZero(g, menuNum);
			}
			break;
		case ThLaKeyNum.START:		
				if(playTwo==null)
					{
						music(1);
					}
					try {
						if(playOne!=null)
						playOne.stop();
						if(playThree!=null)
						playThree.stop();
						playTwo.start();								/**开始播放音乐*/
					} catch (IllegalStateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					} catch (MediaException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					}	
					tlact.monsOneLive=tlact.monsTwoLive=true;
					tlact.monsOneLiveW=tlact.monsTwoLiveW=47;
			tllgc.drawMap(g);
			 break;
		case ThLaKeyNum.ACTION:
			if(playThree==null)
			{
				music(2);
			}
				try {
					if(playOne!=null)
					playOne.stop();
					if(playTwo!=null)
					playTwo.stop();
					playThree.start();								/**开始播放音乐*/
				} catch (IllegalStateException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				} catch (MediaException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				}	
			g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
			tlact.DrawSpRect(g);
			tlact.DrawMap(g,aMenuNum,cursorNum);
			tlact.AppendSpAndMons(g);
			if(color==0)
				{
					g.setColor(0xff0000);
					g.drawRect(tlact.actW-2, tlact.actH+43, 57, 33);
					g.drawRect(60, 70, 65, 42);
					g.setColor(0x0000ff);
					g.drawRect(58, 68, 65, 42);
				}
			else if(color==1)
				{
					g.setColor(0x00ff00);
					g.drawRect(tlact.actW, tlact.actH+43, 57, 33);
					g.drawRect(60, 70, 65, 42);
					g.setColor(0xff0000);
					g.drawRect(58, 68, 65, 42);
				}
			else if(color==2)
				{
					g.setColor(0x0000ff);
					g.drawRect(tlact.actW, tlact.actH+43, 57, 33);
					g.drawRect(60, 70, 65, 42);
					g.setColor(0x00ff00);
					g.drawRect(58, 68, 65, 42);
				}
			
			 break;
		case ThLaKeyNum.ACTION_ONE:
			g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
			tlact.DrawSpRect(g);
			tlact.DrawMap_One(g,aMenuNum,cursorNum);
			tlact.AppendSpAndMons(g);
			if(color==0)
			{
				g.setColor(0xff0000);
				g.drawRect(tlact.actW-2, tlact.actH+43, 57, 33);
				g.drawRect(60, 70, 65, 42);
				g.setColor(0x0000ff);
				g.drawRect(58, 68, 65, 42);
			}
			else if(color==1)
			{
				g.setColor(0x00ff00);
				g.drawRect(tlact.actW, tlact.actH+43, 57, 33);
				g.drawRect(60, 70, 65, 42);
				g.setColor(0xff0000);
				g.drawRect(58, 68, 65, 42);
			}
			else if(color==2)
			{
				g.setColor(0x0000ff);
				g.drawRect(tlact.actW, tlact.actH+43, 57, 33);
				g.drawRect(60, 70, 65, 42);
				g.setColor(0x00ff00);
				g.drawRect(58, 68, 65, 42);
			}
			 break;
		case ThLaKeyNum.ACTION_SPONE:
			tlact.ActionOverAble();
			if(tlact.spOneLive)
			{
				g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
				tlact.AppendSpAndMons(g);
				tlact.DrawSpRect(g);
				if(tlact.spOneState!=5)
				{
					for(int i=0;i<3;i++)
					{
						tlact.SpOneActStateAble();
						tlact.SpOneActAble(spOneActNum);
					}
					if(spOneActNum==0)
					{
						tlact.MonsOneStateAble();
						tlact.MonsOneAble(g);
						if(tlact.monsOneSNum>2)
						{
							ActSpMonsNum();
							tlact.monsOneSNum=0;
							mnNum=ThLaKeyNum.ACTION_SPTWO;				
						}
					}
					else
					{
						tlact.MonsTwoStateAble();
						tlact.MonsTwoAble(g);				
						if(tlact.monsTwoSNum>2)
						{
							spAbleNum=0;
							tlact.actW=1;
							ActSpMonsNum();
							tlact.monsTwoSNum=0;
							mnNum=ThLaKeyNum.ACTION_SPTWO;				
						}
					}
				}
				else {
					
					mnNum=ThLaKeyNum.ACTION_SPTWO;
				}
			}
			else {
					mnNum=ThLaKeyNum.ACTION_SPTWO;
			}
			 break;
		case ThLaKeyNum.ACTION_SPTWO:
			tlact.ActionOverAble();
		
			if(tlact.spTwoLive)
			{
				g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
				tlact.AppendSpAndMons(g);
				tlact.DrawSpRect(g);
				try {
					Thread.sleep(200);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(tlact.spTwoState==5)
				{
					mnNum=ThLaKeyNum.ACTION_SPTHREE;
				}
				else if(tlact.spTwoState==6)
				{
					
					tlact.SpTwoMMFrame(20,spMgcToNpcNum);	
					
					if(tlact.spTwoMgcOneNum>6)
					{	
						SpTwoMgcOne(spMgcToNpcNum);
						tlact.monsOneSNum=0;
						tlact.spTwoMgcOneNum=0;
						mnNum=ThLaKeyNum.ACTION_SPTHREE;				
					}
			}
			else {
				for(int i=0;i<3;i++)
				{
					tlact.SpTwoActStateAble();
					tlact.SpTwoActAble(spTwoActNum);
				}
				if(spTwoActNum==0)
				{
					tlact.MonsOneStateAble();
					tlact.MonsOneAble(g);
					if(tlact.monsOneSNum>2)
					{	
						spAbleNum=0;
						tlact.actW=1;
						ActSpMonsNum();
						tlact.monsOneSNum=0;
						mnNum=ThLaKeyNum.ACTION_SPTHREE;				
					}
				}
				else
				{
					tlact.MonsTwoStateAble();
					tlact.MonsTwoAble(g);
				
					if(tlact.monsTwoSNum>2)
					{	
						ActSpMonsNum();
						tlact.monsTwoSNum=0;
						mnNum=ThLaKeyNum.ACTION_SPTHREE;				
					}
				}
			}
			}
			else {
				mnNum=ThLaKeyNum.ACTION_SPTHREE;
				}
			 break;
			 
			 
		case ThLaKeyNum.ACTION_SPTHREE:
			tlact.ActionOverAble();
			if(tlact.spThreeLive)
			{
			g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
			tlact.AppendSpAndMons(g);
			tlact.DrawSpRect(g);
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(tlact.spThreeState!=5)
			{
				for(int i=0;i<2;i++)
				{
					tlact.SpThreeActStateAble();
					tlact.SpThreeActAble(spThreeActNum);
				}
				if(spThreeActNum==0)
				{
					tlact.MonsOneStateAble();
					tlact.MonsOneAble(g);
					if(tlact.monsOneSNum>2)
					{
						ActSpMonsNum();
						spAbleNum=0;
						tlact.monsOneSNum=0;
						tlact.actW=1;
						mnNum=ThLaKeyNum.ACTION_MONSONE;				
					}
				}
				else
				{
					tlact.MonsTwoStateAble();
					tlact.MonsTwoAble(g);
					if(tlact.monsTwoSNum>2)
					{
						ActSpMonsNum();
						spAbleNum=0;
						tlact.monsTwoSNum=0;
						tlact.actW=1;
						mnNum=ThLaKeyNum.ACTION_MONSONE;				
					}
				}
			}
			else 
			{
				spAbleNum=0;
				tlact.monsOneSNum=0;
				tlact.actW=1;
				mnNum=ThLaKeyNum.ACTION_MONSONE;
			}
			}
			else {
				spAbleNum=0;
				tlact.actW=1;
				mnNum=ThLaKeyNum.ACTION_MONSONE;
			}
			 break;
		case ThLaKeyNum.ACTION_MONSONE:
			tlact.ActionOverAble();
			if(tlact.monsOneLive)
			{
				g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
				tlact.AppendSpAndMons(g);
				tlact.DrawSpRect(g);
				try {
					Thread.sleep(200);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
					tlact.MonsOneActStateAble();
					tlact.MonsOneAble(g);
				if(tlact.monsOneANum==10)
				{
					ActSpMonsNum();
					tlact.monsOneANum=0;
					tlact.monsActSPNum=4;
					if(tlact.spOneState==5){tlam.IspOneD=tlam.IspOneD/2;tlact.spOneState=0;}
					if(tlact.spTwoState==5){tlam.IspTwoD=tlam.IspTwoD/2;tlact.spTwoState=0;}
					if(tlact.spThreeState==5){tlam.IspThreeD=tlam.IspThreeD/2;tlact.spThreeState=0;}
					
					mnNum=ThLaKeyNum.ACTION_MONSTWO;				
				}
			}
			else
			{
				
				mnNum=ThLaKeyNum.ACTION_MONSTWO;
			}
			 break;
		case ThLaKeyNum.ACTION_MONSTWO:
			tlact.ActionOverAble();
			if(tlact.monsTwoLive)
			{
			
				g.drawImage(imgaction, 0, 0, Graphics.TOP|Graphics.LEFT); 		
				tlact.AppendSpAndMons(g);
				tlact.DrawSpRect(g);
				try {
					Thread.sleep(200);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		
					tlact.MonsTwoActStateAble();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -