?? thlacv.java
字號:
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 + -