📄 canvas1.java
字号:
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//停止run线程后
if(enemyFactory!=null)
enemyFactory.stopAutoMove();
if(npcFactory!=null)
npcFactory.stopAutoMove();
ThreadRunning = false;
}
public void redrawAll()
{
if(!isDrawing)
{
isDrawing = true;
g.setColor(0x000000);
g.fillRect(0,0,width,height);
if(backLayer != null)
backLayer.paint(g,0,0); //绘制背景
if(roleLayer != null)
roleLayer.sort(); //所有角色重新排序
if(roleLayer != null)
roleLayer.paint(g,0,0); //绘制角色层
if(frontLayer != null)
frontLayer.paint(g,0,0); //绘制前景
//if(fixLayer!=null)fixLayer.paint(g,0,0); //绘制固定层
//drawFont();
//监测遇明雷
if(GameMIDlet.mainRole.checkTouchEnemy(enemyFactory,roleLayer))
{
GameMIDlet.midlet.toBattle(1);
}
//检测遇暗雷
boolean touchMine=false;
if(GameMIDlet.mainRole.isCanTouchMine())
{
if(GameMIDlet.mainRole.getMineTimeCounter()<=0)
{
GameMIDlet.mainRole.setShowExcalMark(true);
touchMine=true;
}
}
ChatArea chatArea=GameMIDlet.mainRole.getChatArea();
if(runStatus!= Canvas1.STATUS_CHAT)
{
if(chatArea!=null)
{
MySprite parent = chatArea.getParent();
//System.out.println("进入"+parent.getName()+"对话区");
chatSprite=parent;
/*
if(msgBoard==null)
{
Vector msgVC = chatSprite.getMsgVC();
msgBoard = new MsgBoard(this,g);
msgBoard.setMsgVC(msgVC); //设置对话内容集合
msgBoard.setMsgPoint(chatSprite.getMsgPoint()); //设置对话指针
msgBoard.visible=false; //暂时不显示对话
}
*/
inChatArea=true; //设置在对话区标记
}
else
{
inChatArea=false;
chatSprite=null;
}
}
OutArea outArea=GameMIDlet.mainRole.getOutArea();
if(outArea!=null)
{
System.out.println("到达出口");
SceneLib.currentSceneIndex=outArea.getOutSceneIndex();
SceneLib.scenes[SceneLib.currentSceneIndex].setRolePosition(outArea.getRoleX(),outArea.getRoleY());
SceneLib.scenes[SceneLib.currentSceneIndex].setRoleDir(outArea.getRoleDir());
//System.out.println("GameMIDlet.sceneIndex="+GameMIDlet.sceneIndex);
//System.out.println("GameMIDlet.scenes["+GameMIDlet.sceneIndex+"].getRoleX()="+GameMIDlet.scenes[GameMIDlet.sceneIndex].getRoleX());
//System.out.println("GameMIDlet.scenes["+GameMIDlet.sceneIndex+"].getRoleY()="+GameMIDlet.scenes[GameMIDlet.sceneIndex].getRoleY());
System.out.println("清除npc");
if(GameMIDlet.midlet.enemyVC!=null)GameMIDlet.midlet.enemyVC.removeAllElements();
if(npcFactory!=null)
{
npcFactory.stopAutoMove();
Vector npcVC=npcFactory.getSpriteVC();
for(int i=0;npcVC!=null && i<npcVC.size();i++)
{
MySprite npc=(MySprite)npcVC.elementAt(i);
npc.stopAutoMove();
if(!npc.isStatic)npc=null;
}
npcFactory.clearSpriteVC();
npcFactory=null;
}
System.out.println("清除enemy");
if(enemyFactory!=null)
{
enemyFactory.stopAutoMove();
Vector enemyVC=enemyFactory.getSpriteVC();
for(int i=0;enemyVC!=null && i<enemyVC.size();i++)
{
EnemySprite enemy=(EnemySprite)enemyVC.elementAt(i);
enemy.stopAutoMove();
enemy=null;
}
enemyFactory.clearSpriteVC();
enemyFactory=null;
}
stop();
if(!isLoading)loadScene();
//loadScene();
}
if(msgBoard!=null && msgBoard.visible)
{
//System.out.println("msgBoard.show()");
msgBoard.show();
//System.out.println("msgBoard.show()后");
}
if(faceIndex>-1 && faceIndex<FaceLib.faceSprites.length)
{
faceShower.setFaceIndex(faceIndex);
faceShower.paint(GameMIDlet.mainRole.getX()-windowX+2, GameMIDlet.mainRole.getY()-windowY-20);
}
if(GameMIDlet.mainRole.isShowExcalMark()) //显示遇敌感叹号
{
GameMIDlet.mainRole.drawExcalMark(g,windowX,windowY);
}
if(touchMine)
{
GameMIDlet.midlet.toBattle(0);
}
if(runStatus>=STATUS_SHOWMENU && runStatus<=STATUS_SHOWSYSTEM)
{
gameMenu.showMenu();
}
if(runStatus==STATUS_SHOWSTATUS)
{
gameMenu.showStatus();
}
if(runStatus==STATUS_SHOWITEM)
{
gameMenu.showItem();
}
if(runStatus==STATUS_SHOWEQUIP)
{
gameMenu.showEquip();
}
if(runStatus==STATUS_SHOWSKILL)
{
gameMenu.showSkill();
}
if (runStatus == STATUS_SHOPING)
{
shoping.ShowShopUi(shopStatus);
}
if (runStatus == STATUS_SHOWSYSTEM && sysMenu!=null)
{
sysMenu.ShowUI(0);
if (sysMenuCmdStatus == SYSTEM_CMDMENU_OPENING)
{
cmdListStatus = SYSTEM_CMDLIST_OPENING;
sysMenu.showCmdMenu();
}
}
if(runStatus==STATUS_SHOWMISSION && missionTab!=null)
{
missionTab.paint(g);
}
if(itemStatus == ITEMSTATUS_COMMAND || equipStatus == EQUIPSTATUS_COMMAND)
{
if(matCommand!=null)
matCommand.paint(g);
}
if(myAlert!=null && myAlert.isShow())
{
myAlert.paint(g);
}
scrollWindow();
g.setColor(0xFF0000);
if(GameMIDlet.showFPS)
{
long t2=System.currentTimeMillis();
if(t2-t1>0)g.drawString("Fps:"+runTimes*1000/(t2-t1),5,5,Style.LT);
}
runTimes++;
if(GameMIDlet.showMem)
{
g.drawString("Total memory:"+Runtime.getRuntime().totalMemory(),5,20,Style.LT);
g.drawString("Free memory:"+Runtime.getRuntime().freeMemory(),5,35,Style.LT);
}
//g.drawString("Threads="+Thread.activeCount(),5,50,Style.LT);
flushGraphics();
isDrawing=false;
}
}
protected void keyRepeated(int keyCode)
{
int gameAction = KeyMapping.getGameKey(keyCode);
if (gameAction != 0) {
int bit = 1 << gameAction;
this.keyStates |= bit;
this.releasedKeys &= ~bit;
}
if(controller!=null)
controller.keyRepeated(keyCode);
}
protected void keyPressed(int keyCode)
{
int gameAction = KeyMapping.getGameKey(keyCode);
if (gameAction != 0) {
int bit = 1 << gameAction;
this.keyStates |= bit;
this.releasedKeys &= ~bit;
}
if(controller!=null)
controller.keyPressed(keyCode);
}
private void input()
{
//System.out.println("检测输入开始");
int keyStates = getKeyStates();
if(runStatus==Canvas1.STATUS_WALK)
{
if ((keyStates & LEFT_PRESSED) != 0)
{
GameMIDlet.mainRole.changeDirect(MainRole.DIR_LEFT);
GameMIDlet.mainRole.setWalk(true);
}else
if ((keyStates & RIGHT_PRESSED) !=0 )
{
GameMIDlet.mainRole.changeDirect(MainRole.DIR_RIGHT);
GameMIDlet.mainRole.setWalk(true);
}else
if ((keyStates & UP_PRESSED) != 0)
{
GameMIDlet.mainRole.changeDirect(MainRole.DIR_UP);
GameMIDlet.mainRole.setWalk(true);
}else
if ((keyStates & DOWN_PRESSED) !=0)
{
GameMIDlet.mainRole.changeDirect(MainRole.DIR_DOWN);
GameMIDlet.mainRole.setWalk(true);
}
if ((keyStates & LEFT_PRESSED) == 0 && (keyStates & RIGHT_PRESSED) ==0 && (keyStates & UP_PRESSED) == 0 && (keyStates & DOWN_PRESSED) ==0)
{
GameMIDlet.mainRole.setWalk(false);
}
GameMIDlet.mainRole.move();
}
//System.out.println("检测输入结束");
}
/*
private void toBattle(int enemyType)
{
battleCanvas=new BattleCanvas("battle",disp,this);
battleCanvas.setEnemyType(enemyType); //设置明雷或暗雷
stop();
inBattle=true;
if(enemyType==0)
{
Timer timer=new Timer();
TimerTask timerTask=new TimerTask()
{
public void run()
{
battleCanvas.init();
battleCanvas.start();
disp.setCurrent(battleCanvas);
}
};
timer.schedule(timerTask,0);
}
else
{
battleCanvas.init();
battleCanvas.start();
disp.setCurrent(battleCanvas);
}
System.gc();
}
*/
/*
public void outBattle()
{
if(GameMIDlet.mainRole.isCanTouchMine())
{
MyRandom myRandom=new MyRandom();
myRandom.setMinInt(-20);
myRandom.setMinInt(20);
GameMIDlet.mainRole.setMineTimeCounter(SceneLib.scenes[SceneLib.currentSceneIndex].getMineTimerCounter()+myRandom.nextInt());
}
GameMIDlet.mainRole.setShowExcalMark(false);
inBattle=false;
if(enemyFactory!=null)enemyFactory.startAutoMove();
if(npcFactory!=null)npcFactory.startAutoMove();
start();
disp.setCurrent(this);
battleCanvas=null;
GameMIDlet.midlet.stopBattleSound();
GameMIDlet.midlet.playSound();
GameMIDlet.mainRole.clearUpData(); //清除升级显示信息
System.gc();
}
*/
//初始化任务界面
public void initMissionTab()
{
int w=150;
int h=150;
int x=(this.width-w)/2;
int y=(this.height-h)/2;
if(missionTab!=null)missionTab.removeAll();
missionTab=null;
if(missionTab==null)
{
missionTab=new MissionTab();
missionTab.setTabName(new String[]{" 任务 "});
missionTab.setTabIndex(0);
missionTab.setBgColor(Style.bgColor2);
missionTab.setHighLightColor(Style.highLight);
missionTab.setPosition(x,y);
missionTab.setW(w);
missionTab.setH(h);
Vector missionVC = GameMIDlet.mainRole.getMissionVC();
for(int i=0; missionVC!=null && i<missionVC.size(); i++)
{
if(((Mission)missionVC.elementAt(i)).getStatus()==Mission.STATUS_MISSION_DOING)
missionTab.addElement((Mission)missionVC.elementAt(i));
}
}
}
/*
public void flushGraphics()
{
repaint();
serviceRepaints();
}
protected void paint(Graphics g)
{
g.drawImage(screenImg,0,0,Style.LT);
}
*/
/*
TimerTask timerTask;
Timer timer;
Box fadeOutBox;
public void fadeOut()
{
inBattle=true;
fadeOutBox=new Box();
fadeOutBox.x=width/2;
fadeOutBox.y=height/2;
fadeOutBox.w=0;
fadeOutBox.h=0;
timerTask=new TimerTask()
{
public void run()
{
doFadeOut();
}
};
timer=new Timer();
timer.schedule(timerTask,0,20);
battleCanvas=new BattleCanvas("battle",disp,this);
}
private void doFadeOut()
{
fadeOutBox.w=fadeOutBox.w+width/10;
fadeOutBox.h=fadeOutBox.h+height/10;
fadeOutBox.x=width/2-fadeOutBox.w/2;
fadeOutBox.y=height/2-fadeOutBox.h/2;
if(fadeOutBox.w>width+width/10 && fadeOutBox.h>height+height/10)
{
timer.cancel();
fadeOutBox=null;
toBattle();
}
}
*/
class Loader extends Thread
{
public void run()
{
doLoadScene();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -