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

📄 thlaaction.java

📁 一个初学者的RPG手机游戏作品
💻 JAVA
字号:
import java.io.IOException;
import java.util.Random;

import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;


public class ThLaAction extends Canvas {
	
	ThLaMons tlms;
	ThLaSpActSkill tlsas;
	ThLaActMenu tlam;
	Random random;
	String []menu={"攻击","防御","道具","逃跑"}; 
	String []menu1={"a","b","c","d"}; 
	String []act={"普攻","魔法","特技"};
	String []act1={"a-1","a-2","a-3","a-4"}; 
	String []item1={"c-1","c-2"}; 
	int monsNum;
	int actW,actH;
	int dtjW,dtjH;
	int dNum,dNum_one,dNum_two,dNum_three;
	Image imgSp1,imgSp2,imgSp3;
	Image imgJTr,imgJTl;
	int lastmonsOneState,lastmonsTwoState;
	int spOneAble,spTwoAble,spThreeAble;
	int monsOneAble,monsOneANum,monsOneSNum,monsOneW,monsOneH;
	int monsTwoAble,monsTwoANum,monsTwoSNum,monsTwoW,monsTwoH;
	int spOneLiveW,spTwoLiveW,spThreeLiveW;
	int spOneMpW,spTwoMpW,spThreeMpW;
	int monsOneLiveW,monsTwoLiveW,monsThreeLiveW;
	int monsActSPNum,monsAsTCV;      //保存怪物随机攻击主角的变量
	boolean spOneLive,spTwoLive,spThreeLive,monsOneLive,monsTwoLive;
	int spOnedieFNum, spTwodieFNum, spThreedieFNum;
	int spTwoMgcOneNum;
	int spOneState,spTwoState,spThreeState;
	int spTwoMOneW,spTwoMOneH;
	
	LayerManager lmanager;
	
	public ThLaAction()
	{
		if(tlms==null)
		{
			tlms=new ThLaMons();
		}
		if(random==null)
		{
			random=new Random();
		}
		if(tlsas==null)
		{
			tlsas=new ThLaSpActSkill();
		}
		if(tlam==null)
		{
			tlam=new ThLaActMenu();
		}
		actW=1;
		actH=130;
		monsNum=2;
		lastmonsOneState=1;
		lastmonsTwoState=1;
		spOneLiveW=29;
		spTwoLiveW=29;
		spThreeLiveW=29;
		monsOneLiveW=47;
		monsTwoLiveW=47;
		monsThreeLiveW=47;
		spOneMpW=spTwoMpW=spThreeMpW=29;
		monsActSPNum=4;
		monsOneW=4;
		monsOneH=15;
		monsTwoW=14;
		monsTwoH=85;
		spOneLive=spTwoLive=spThreeLive=monsOneLive=monsTwoLive=true;
		try {	
			imgSp1=Image.createImage("/res/sp1.png");
			imgSp2=Image.createImage("/res/sp2.png");
			imgSp3=Image.createImage("/res/sp3.png");
			imgJTr=Image.createImage("/res/jiantouZuo.png");
			imgJTl=Image.createImage("/res/jiantouYou.png");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		if(lmanager==null)
		{
		lmanager=new LayerManager();
		}
	}

	protected void paint(Graphics arg0) {
		// TODO Auto-generated method stu
	}
	public void ActionOverAble()
	{
		if(monsOneLiveW<=0)
		{
			monsOneLive=false;
		}
		if(monsTwoLiveW<=0)
		{
			monsTwoLive=false;
		}
		if(!monsOneLive&&!monsTwoLive)
		{
			ThLaCV.mnNum=ThLaKeyNum.ACTOVER;
		}
		if(spOneLiveW<=0)
		{
			spOneLive=false;
		}
		if(spTwoLiveW<=0)
		{
			spTwoLive=false;
		}
		if(spThreeLiveW<=0)
		{
			spThreeLive=false;
		}
		if(spOneLive)spOnedieFNum=0;
		if(spTwoLive)spTwodieFNum=0;
		if(spThreeLive)spThreedieFNum=0;
	}
	
	public void DrawSpRect(Graphics g)
	{
		g.setColor(0xffffff);
		g.drawRect(1,173, 57, 34);
		g.drawRect(2,174, 56, 33);
		g.drawImage(imgSp1, 3, 175, Graphics.TOP|Graphics.LEFT);
		g.setColor(0x000000);
		g.drawRect(26, 176, 30, 7);
		g.drawRect(26, 187, 30, 7);
		g.setColor(0xff4242);
		g.fillRect(27, 177, spOneLiveW, 6);
		g.setColor(0x7864ff);
		g.fillRect(27, 188, spOneMpW, 6);
		
		g.setColor(0xffffff);
		g.drawRect(59,173, 57, 34);
		g.drawRect(59,174, 56, 33);
		g.drawImage(imgSp2, 62, 175, Graphics.TOP|Graphics.LEFT);
		g.setColor(0x000000);
		g.drawRect(84, 176, 30, 7);
		g.drawRect(84, 187, 30, 7);
		g.setColor(0xff4242);
		g.fillRect(85, 177, spTwoLiveW, 6);
		g.setColor(0x7864ff);
		g.fillRect(85, 188, spTwoMpW, 6);
		
		g.setColor(0xffffff);
		g.drawRect(117,173, 57, 34);
		g.drawRect(117,174, 56, 33);
		g.drawImage(imgSp3, 119, 175, Graphics.TOP|Graphics.LEFT);
		g.setColor(0x000000);
		g.drawRect(141, 176, 30, 7);
		g.drawRect(141, 187, 30, 7);
		g.setColor(0xff4242);
		g.fillRect(142, 177, spThreeLiveW, 6);
		g.setColor(0x7864ff);
		g.fillRect(142, 188, spThreeMpW, 6);

	}
	public void DrawMap(Graphics g,int numA,int num)
	{
		this.setFullScreenMode(true);
		g.setColor(0x70000ff);
		g.drawRect(60, 70, 65, 42);
		g.drawRect(58, 68, 65, 42);
		g.setColor(0xffffff);
		g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));
		for(numA=0,dNum=1;numA<menu.length;numA++,dNum++)
		{
			if(dNum==1){dtjW=0;dtjH=3;}
			else if(dNum==2){dtjW=34;dtjH=3;}
			else if(dNum==3){dtjW=0;dtjH=23;}
			else if(dNum==4){dtjW=34;dtjH=23;}
			if(numA==num){
				g.setColor(0xffff00);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_ITALIC,Font.SIZE_LARGE));
				g.drawString(menu[numA],60+dtjW,70+dtjH,Graphics.TOP|Graphics.LEFT);			 /**选择保存菜单数组中的一段文字并输出到指定坐标*/		
				}
			else{
				g.setColor(0x0000ff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD|Font.STYLE_ITALIC, Font.SIZE_LARGE));
				g.drawString(menu[numA],60+dtjW,70+dtjH,Graphics.TOP|Graphics.LEFT);			 /**选择保存菜单数组中的一段文字并输出到指定坐标*/		
				}
		}
	}
	public void DrawMap_One(Graphics g,int numA,int num)
	{
		this.setFullScreenMode(true);
		g.setColor(0x0000ff);
		g.drawRect(60, 70, 65, 42);
		g.drawRect(58, 68, 65, 42);
		g.setColor(0xffffff);
		g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));
		for(numA=0,dNum_one=1;numA<act.length;numA++,dNum_one++)
		{
			if(dNum_one==1){dtjW=0;dtjH=3;}
			else if(dNum_one==2){dtjW=32;dtjH=3;}
			else if(dNum_one==3){dtjW=0;dtjH=23;}
			else if(dNum_one==4){dtjW=32;dtjH=23;}
			if(numA==num){
				g.setColor(0xffff00);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_ITALIC,Font.SIZE_LARGE));
				g.drawString(act[numA],60+dtjW,70+dtjH,Graphics.TOP|Graphics.LEFT);			} /**选择保存菜单数组中的一段文字并输出到指定坐标*/		
			else{
				g.setColor(0x0000ff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD|Font.STYLE_ITALIC, Font.SIZE_LARGE));
				g.drawString(act[numA],60+dtjW,70+dtjH,Graphics.TOP|Graphics.LEFT);			} /**选择保存菜单数组中的一段文字并输出到指定坐标*/		
		}
	}
	public void SpOneActStateAble()
	{
			spOneAble=0;
			if(tlsas.spOneANum>9)
			{
				spOneAble=1;			
				tlsas.spOneANum=0;
			}	
	}	
	public void SpOneActAble(int aNum)
	{
		tlsas.SpOneActFrame(spOneAble,aNum);
	}
	public void SpTwoActStateAble()
	{
		spTwoAble=0;
		if(tlsas.spTwoANum>9)
		{
			spTwoAble=1;			
			tlsas.spTwoANum=0;
		}	
	}	
	public void SpTwoActAble(int aNum)
	{
		tlsas.SpTwoActFrame(spTwoAble,aNum);
	}
	public void SpThreeActStateAble()
	{
		spThreeAble=0;
		if(tlsas.spThreeANum>5)
		{
			spThreeAble=1;			
			tlsas.spThreeANum=0;
		}	
	}	
	public void SpThreeActAble(int aNum)
	{
		tlsas.SpThreeActFrame(spThreeAble,aNum);
	}
	public void AppendSpAndMons(Graphics g)
	{

		lmanager.append(tlsas.sp1act);
		tlsas.sp1act.setPosition(tlsas.spOneW, tlsas.spOneH);
		lmanager.append(tlsas.sp2act);
		tlsas.sp2act.setPosition(tlsas.spTwoW, tlsas.spTwoH);
		lmanager.append(tlsas.sp3act);
		tlsas.sp3act.setPosition(tlsas.spThreeW, tlsas.spThreeH);
		lmanager.append(tlms.one_mons_one);
		tlms.one_mons_one.setPosition(monsOneW, monsOneH);
		lmanager.append(tlms.one_mons_two);
		tlms.one_mons_two.setPosition(monsTwoW, monsTwoH);
		lmanager.paint(g,0,0);
		lmanager.setViewWindow(0, 0,176,208);
		g.setColor(0x000000);
		g.drawRect(4, 5, 48, 5);
		g.drawRect(4, 80, 48, 5);
		g.setColor(0xff0000);
		g.fillRect(5, 6, monsOneLiveW, 4);
		g.fillRect(5, 81, monsTwoLiveW, 4);
	}
	
	
	
	public void MonsOneAble(Graphics g)
	{
		MonsOneFrame(monsOneAble);
	}
	public void MonsOneActStateAble()
	{
		if(monsActSPNum==4)
		{
			monsActSPNum=random.nextInt();
			monsActSPNum=monsActSPNum%3;
		}
		monsAsTCV=monsActSPNum;
		monsOneAble=ThLaKeyNum.MONS_ACT;
		if(monsOneANum>2)
		{
			monsOneAble=ThLaKeyNum.MONS_STAND;			
			monsOneANum=10;
			monsActSPNum=4;	
			
		}	
	}	
	public void MonsOneStateAble()
	{
		//monsActSPNum=random.nextInt(3);
		monsOneAble=ThLaKeyNum.MONS_ACTES;
		if(monsOneSNum==2)
			{
				monsOneAble=ThLaKeyNum.MONS_STAND;	
				monsOneSNum=3;		
			}		
	}

	public void MonsOneFrame(int monsState)
	{
		if(!monsOneLive)
		{
			monsState=150;
		}
		switch(monsState)
		{
			case ThLaKeyNum.MONS_STAND:
				monsOneW=4;
				monsOneH=15;
				if(lastmonsOneState!=monsState)
			 	{
				 	tlms.one_mons_one.setFrameSequence(new int[]{0,1});
				 	lastmonsOneState=monsState;
			 	}
			 	else tlms.one_mons_one.nextFrame();
			 	break;
			case ThLaKeyNum.MONS_ACT:
				if(monsActSPNum==0)
				{
					monsOneW=84;
					monsOneH=0;
				}
				else if(monsActSPNum==1)
				{
					monsOneW=85;
					monsOneH=53;
				}
				else if(monsActSPNum==2)
				{
					monsOneW=82;
					monsOneH=108;
				}
				else
				{
					monsOneW=84;
					monsOneH=0;
				}
				 if(lastmonsOneState!=monsState)
				 {
					 tlms.one_mons_one.setFrameSequence(new int[]{2,3,4});
					 lastmonsOneState=monsState;
				 }
				 else {tlms.one_mons_one.nextFrame();monsOneANum++;}
				 break;
			case ThLaKeyNum.MONS_ACTES:
				 if(lastmonsOneState!=monsState)
				 {
					 tlms.one_mons_one.setFrameSequence(new int[]{5});
					  lastmonsOneState=monsState;
				 }
				 else {tlms.one_mons_one.nextFrame();monsOneSNum++;}
				 break; 
			case 150:
				 if(lastmonsOneState!=monsState)
				 {
					 tlms.one_mons_one.setFrameSequence(new int[]{7});
					  lastmonsOneState=monsState;
				 }
				 else {tlms.one_mons_one.nextFrame();monsOneSNum++;}
				 break; 
			default:
				 break;
		}
	}
	
	
	public void MonsTwoAble(Graphics g)
	{
		MonsTwoFrame(monsTwoAble);
	}
	public void MonsTwoActStateAble()
	{
		if(monsActSPNum==4)
		{
			monsActSPNum=random.nextInt();
			monsActSPNum=monsActSPNum%3;
		}
		monsAsTCV=monsActSPNum;
		monsTwoAble=ThLaKeyNum.MONS_ACT;
		if(monsTwoANum>9)
		{
			monsTwoAble=ThLaKeyNum.MONS_STAND;			
		//	monsTwoANum=10;
			monsActSPNum=4;	
			
		}	
	}	
	public void MonsTwoStateAble()
	{
		//monsActSPNum=random.nextInt(3);
		monsTwoAble=ThLaKeyNum.MONS_ACTES;
		if(monsTwoSNum==2)
			{
				monsTwoAble=ThLaKeyNum.MONS_STAND;	
				monsTwoSNum=3;		
			}		
	}

	public void MonsTwoFrame(int monsState)
	{
		if(!monsTwoLive)
		{
			monsState=150;
		}
		switch(monsState)
		{
			case ThLaKeyNum.MONS_STAND:
				monsTwoW=14;
				monsTwoH=85;
				if(lastmonsTwoState!=monsState)
			 	{
				 	tlms.one_mons_two.setFrameSequence(new int[]{0,1,2,3});
				 	lastmonsTwoState=monsState;
			 	}
			 	else tlms.one_mons_two.nextFrame();
			 	break;
			case ThLaKeyNum.MONS_ACT:
				if(monsActSPNum==0)
				{
					monsTwoW=94;
					monsTwoH=0;
				}
				else if(monsActSPNum==1)
				{
					monsTwoW=95;
					monsTwoH=53;
				}
				else if(monsActSPNum==2)
				{
					monsTwoW=92;
					monsTwoH=108;
				}
				else
				{
					monsTwoW=94;
					monsTwoH=0;
				}
				 if(lastmonsTwoState!=monsState)
				 {
					 tlms.one_mons_two.setFrameSequence(new int[]{4,5,6,7,8,9,10,11,0});
					 lastmonsTwoState=monsState;
				 }
				 else {tlms.one_mons_two.nextFrame();monsTwoANum++;}
				 break;
			case ThLaKeyNum.MONS_ACTES:
				 if(lastmonsTwoState!=monsState)
				 {
					 tlms.one_mons_two.setFrameSequence(new int[]{12});
					  lastmonsTwoState=monsState;
				 }
				 else {tlms.one_mons_two.nextFrame();monsTwoSNum++;}
				 break; 
			case 150:
				 if(lastmonsTwoState!=monsState)
				 {
					 tlms.one_mons_two.setFrameSequence(new int[]{13});
					  lastmonsTwoState=monsState;
				 }
				 else {tlms.one_mons_two.nextFrame();monsTwoSNum++;}
				 break; 
			default:
				 break;
		}
	}
	
	public void SpTwoMgcANum(Graphics g)
	{
		g.setColor(0xff0000);
		g.drawRect(38, 58, 102, 102);
		g.drawRect(39, 59, 101, 101);
		g.drawRect(40, 60, 100, 100);	
		g.setColor(0x7fdcdcdc);
		g.fillRect(41, 61, 99, 99);	
		g.setColor(0xffff00);
		g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_ITALIC,Font.SIZE_LARGE));
		g.drawString("初级治疗术",42,62,Graphics.TOP|Graphics.LEFT);	
		
	//	g.drawString("复活术", 42, 82,Graphics.TOP|Graphics.LEFT);
	}
	public void SpMgcANum(Graphics g,int aNum)
	{
		g.drawImage(imgJTr, 100, 28+aNum*56, Graphics.LEFT|Graphics.TOP);
	}
	public void SpActNum(Graphics g,int aNum)
	{	
		g.drawImage(imgJTl, 58, 40+aNum*76, Graphics.LEFT|Graphics.TOP);
	}
	public void SpOneActFrame(int spOneAble)
	{
			if(tlsas.lastspOneState!=spOneAble)
			{
				tlsas.sp1act.setFrameSequence(new int[]{0,1,2,3,4,5});
				tlsas.lastspOneState=spOneAble;
			}
		 	else tlsas.sp1act.nextFrame();
	}
	public void SpOneDieFrame(int spOneAble)
	{
			if(tlsas.lastspOneState!=spOneAble)
			{
				tlsas.sp1act.setFrameSequence(new int[]{15,16,17});
				tlsas.lastspOneState=spOneAble;
			}
		 	else {tlsas.sp1act.nextFrame();spOnedieFNum++;}
	}
	public void SpTwoActFrame(int spTwoAble)
	{
		tlsas.spTwoW=120;
		tlsas.spTwoH=58;
			if(tlsas.lastspTwoState!=spTwoAble)
			{
				tlsas.sp2act.setFrameSequence(new int[]{0,1,2,3,4,5});
				tlsas.lastspTwoState=spTwoAble;
			}
		 	else tlsas.sp2act.nextFrame();
	}
	public void SpTwoMMFrame(int spTwoAble,int MM)
	{
		tlsas.spTwoW=120;
		tlsas.spTwoH=58;
		if(MM==0)
		{
			spTwoMOneW=110;
			spTwoMOneH=0;
		}
		else if(MM==1)
		{
			spTwoMOneW=113;
			spTwoMOneH=58;
		}
		else if(MM==2)
		{
			spTwoMOneW=110;
			spTwoMOneH=120;
		}
		
		if(spTwoMgcOneNum==0)
		{
			lmanager.append(tlsas.spL);
		}
		else if(spTwoMgcOneNum==6)
		{
			lmanager.remove(tlsas.spL);
		}
		tlsas.spL.setPosition(spTwoMOneW,spTwoMOneH);
		
			if(tlsas.lastspTwoState!=spTwoAble)
			{
				tlsas.sp2act.setFrameSequence(new int[]{0,14,15,16,17,18,19});
				tlsas.spL.setFrameSequence(new int[]{0,1,2});
				tlsas.lastspTwoState=spTwoAble;
			}
		 	else {
		 		tlsas.sp2act.nextFrame();
		 		spTwoMgcOneNum++;
		 		if(spTwoMgcOneNum%2==0)
		 			{
		 			tlsas.spL.nextFrame();
		 			}	 			
		 	}
	}
	public void SpTwoDieFrame(int spTwoAble)
	{
		tlsas.spTwoW=120;
		tlsas.spTwoH=58;
			if(tlsas.lastspTwoState!=spTwoAble)
			{
				tlsas.sp2act.setFrameSequence(new int[]{20,21,22});
				tlsas.lastspTwoState=spTwoAble;
			}
		 	else {tlsas.sp2act.nextFrame();spTwodieFNum++;}
	}
	public void SpThreeActFrame(int spThreeAble)
	{
			if(tlsas.lastspThreeState!=spThreeAble)
			{
				tlsas.sp3act.setFrameSequence(new int[]{0,1,2,3,4,5});
				tlsas.lastspThreeState=spThreeAble;
			}
		 	else tlsas.sp3act.nextFrame();
	}
	public void SpThreeDieFrame(int spThreeAble)
	{
			if(tlsas.lastspThreeState!=spThreeAble)
			{
				tlsas.sp3act.setFrameSequence(new int[]{18,19,20});
				tlsas.lastspThreeState=spThreeAble;
			}
		 	else {tlsas.sp3act.nextFrame();spThreedieFNum++;}
	}

}

⌨️ 快捷键说明

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