?? sfcanvas.java
字號:
}catch(InterruptedException e){
e.printStackTrace();
}
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.drawImage(bloodImage,0,0,Graphics.TOP|Graphics.LEFT);
heroSprite.doMove(keyState);
setX=heroSprite.x-getWidth()/2+20;//地圖畫的位置的左上腳坐標(biāo)
setY=heroSprite.y-getHeight()/2+20;
if(mapdir==1){
ASprite ms1[]={monsterSprite,monsterSprite1,monsterSprite2,monsterSprite3,monsterSprite4,monsterSprite5,monsterSprite6,monsterSprite7,monsterSprite8,monsterSprite9,monsterSprite10,heroSprite}; //將需要排序的精靈納入數(shù)組
chgMonsterOrder(ms1);//將排序完成后的數(shù)組賦值
MonsterSprite msp[]={monsterSprite,monsterSprite1,monsterSprite2,monsterSprite3,monsterSprite4,monsterSprite5,monsterSprite6,monsterSprite7,monsterSprite8,monsterSprite9,monsterSprite10};
for(int m=0;m<msp.length;m++){
doMonster(msp[m],heroSprite,rs,myid);
}
if(heroSprite.x-getWidth()/2+20<=0){
setX=0;
}
if(heroSprite.x-getWidth()/2+20>=625-getWidth()){
setX=625-getWidth();
}
if(heroSprite.y-getHeight()/2+20<=0){
setY=0;
}
if(heroSprite.y-getHeight()/2+20>=625-getHeight()){
setY=625-getHeight();
}
layManager.setViewWindow(setX,setY,getWidth(),getHeight());
layManager.paint(g,0,0);//對層管理類進行描繪
for(int m=0;m<msp.length;m++){
monsterBlood(msp[m]);
}
if(marktime<5){
marktime++;
}else{
marktime=0;
}
g.setColor(0x000000FF);
g.fillTriangle(35-marktime-setX,45-marktime-setY,45-marktime-setX,35-marktime-setY,35-marktime-setX,35-marktime-setY);
for(int h=0;h<ms1.length;h++){
ms1[h].setPosition(ms1[h].dx-setX,ms1[h].dy-setY);
if(ms1[h].dx<(getWidth()+setX) && ms1[h].dx>setX &&ms1[h].dy<(getHeight()+setY)&& ms1[h].dy>setY){//只對進入屏幕范圍類的精靈才進行描繪
ms1[h].paint(g);
}
}//對精靈類進行描繪
if(heroSprite.x<20&&heroSprite.y<20){
gotoMap(0);
mapdir=0;
heroSprite.x=130;
heroSprite.y=390;
}
if(heroSprite.isAlive==false){
gotoMap(0);
mapdir=0;
heroSprite.x=180;
heroSprite.y=180;
heroSprite.hp=heroSprite.maxhp;
heroSprite.isAlive=true;
}
}else{
ASprite ms2[]={npcSprite,npcSprite1,heroSprite}; //將需要排序的精靈納入數(shù)組
chgMonsterOrder(ms2);//將排序完成后的數(shù)組賦值
if(heroSprite.lv<=6){
heroSprite.prevexp=heroSprite.lv*heroSprite.lv*60-(heroSprite.lv-1)*(heroSprite.lv-1)*60+150;
heroSprite.nextexp=heroSprite.prevexp+(heroSprite.lv-1)*(heroSprite.lv-1)*60-(heroSprite.lv-2)*(heroSprite.lv-2)*60+150;
}else{
heroSprite.prevexp=heroSprite.lv*(heroSprite.lv-5)*(heroSprite.lv-5)-40*(heroSprite.lv-4)*(heroSprite.lv-4)+150;
heroSprite.nextexp=heroSprite.prevexp+50*(heroSprite.lv+1)*(heroSprite.lv-4)*(heroSprite.lv-4)-40*(heroSprite.lv-3)*(heroSprite.lv-3)+150;
}
if(heroSprite.x-getWidth()/2+20<=0){
setX=0;
}
if(heroSprite.x-getWidth()/2+20>=465-getWidth()){
setX=465-getWidth();
}
if(heroSprite.y-getHeight()/2+20<=0){
setY=0;
}
if(heroSprite.y-getHeight()/2+20>=465-getHeight()){
setY=465-getHeight();
}
layManager.setViewWindow(setX,setY,getWidth(),getHeight());
layManager.paint(g,0,0);//對層管理類進行描繪
if(npcSprite.isTalkable(heroSprite.x,heroSprite.y)==true){
g.setColor(0x00FFFFFF);
g.fillRoundRect(npcSprite.dx+30-setX,npcSprite.dy-setY,20,10,3,3);
g.setColor(0x00000000);
g.drawString("......",npcSprite.dx+32-setX,npcSprite.dy-setY-5,Graphics.TOP|Graphics.LEFT);
if(keyState==256){
if(isOpenshop==false){
isOpenshop=true;
heroSprite.isPause=true;
}
}
}else{
isOpenshop=false;
}
if(npcSprite1.isTalkable(heroSprite.x,heroSprite.y)==true){
//System.out.println("dsafjjdflkjkalsdf");
g.setColor(0x00FFFFFF);
g.fillRoundRect(npcSprite1.dx-setX,npcSprite1.dy-setY-20,20,10,3,3);
g.setColor(0x00000000);
g.drawString("......",npcSprite1.dx-setX,npcSprite1.dy-setY-25,Graphics.TOP|Graphics.LEFT);
if(keyState==256){//按下確定鍵時
if(isOpenmisn==false){
isOpenmisn = true;
heroSprite.isPause=true;
}else{
isOpenmisn=false;
heroSprite.isPause=false;
}
}
}else{
isOpenmisn=false;
}
if(marktime<5){
marktime++;
}else{
//qOrh=true;
marktime=0;
}
g.setColor(0x00FFCC00);
g.fillTriangle(134-setX,430+marktime-setY,144-setX,440+marktime-setY,154-setX,430+marktime-setY);
g.drawImage(houseImagebottom,3-setX,145-setY,Graphics.TOP|Graphics.LEFT);
for(int h=0;h<3;h++){
ms2[h].setPosition(ms2[h].dx-setX,ms2[h].dy-setY);
if(ms2[h].dx<(getWidth()+setX) && ms2[h].dx>setX &&ms2[h].dy<(getHeight()+setY)&& ms2[h].dy>setY){//只對進入屏幕范圍類的精靈才進行描繪
ms2[h].paint(g);
}
}//對精靈類進行描繪
g.drawImage(houseImagetop,3-setX,60-setY,Graphics.TOP|Graphics.LEFT);
if(heroSprite.x<174&&heroSprite.x>94&&heroSprite.y>400){
gotoMap(1);
mapdir=1;
heroSprite.x=30;
heroSprite.y=30;
}
}
g.setColor(0x00350BEC);
switch(mapdir){
case 0:
g.drawString("引導(dǎo)之地",getWidth(),getHeight(),Graphics.BOTTOM|Graphics.RIGHT);
break;
case 1:
g.drawString("新月之尖",getWidth(),getHeight(),Graphics.BOTTOM|Graphics.RIGHT);
break;
}
if(isOpenItem==true){
g.drawImage(gearImage,20,10,Graphics.TOP|Graphics.LEFT);
g.setColor(0x00FFFFFF);
g.drawString(heroSprite.hp+"/"+heroSprite.maxhp,130,20,Graphics.TOP|Graphics.RIGHT);
g.drawString(heroSprite.exp+"/"+heroSprite.nextexp,130,35,Graphics.TOP|Graphics.RIGHT);
g.drawString(heroSprite.at+"/"+heroSprite.df,130,50,Graphics.TOP|Graphics.RIGHT);
g.drawString("等級"+heroSprite.itemlv,130,65,Graphics.TOP|Graphics.RIGHT);
if(keyState==4){
if(isDelpress==false){
if(itempage>1){
itempage--;
}
}else{
if(isChkdel==false){
isChkdel=true;
}
}
}
if(keyState==32&&itempage<4){
if(isDelpress==false){
if(itempage<4){
itempage++;
}
}else{
if(isChkdel==true){
isChkdel=false;
}
}
}
g.drawString(heroSprite.gold+"G",130,95,Graphics.TOP|Graphics.RIGHT);
drawItem(heroSprite.itemcode,itempage);
g.setColor(0x60A51234);
switch(itemcho){
case 1:
g.drawRect(40,105,80,15);
break;
case 2:
g.drawRect(40,120,80,15);
break;
case 3:
g.drawRect(40,135,80,15);
break;
}
}
if(isOpenshop==true){
g.drawImage(shopImage,20,10,Graphics.TOP|Graphics.LEFT);
switch(nowShopcho){
case 0:
g.setColor(0x00ffffff);
g.drawRect(37,30,17,17);
g.setColor(0x008A56E8);
g.drawString("藥瓶,補充",90,93,Graphics.TOP|Graphics.LEFT);
g.drawString("HP至滿,價格"+itemprice[0]+"G",40,107,Graphics.TOP|Graphics.LEFT);
break;
case 1:
g.setColor(0x00ffffff);
g.drawRect(56,30,17,17);
g.setColor(0x008A56E8);
g.drawString("布衣,攻防",90,93,Graphics.TOP|Graphics.LEFT);
g.drawString(heroSprite.itemat[1]+"/"+heroSprite.itemdf[1]+",價格"+itemprice[1]+"G",40,107,Graphics.TOP|Graphics.LEFT);
break;
case 2:
g.setColor(0x00ffffff);
g.drawRect(75,30,17,17);
g.setColor(0x008A56E8);
g.drawString("稠衣,攻防",90,93,Graphics.TOP|Graphics.LEFT);
g.drawString(heroSprite.itemat[2]+"/"+heroSprite.itemdf[2]+",價格"+itemprice[2]+"G",40,107,Graphics.TOP|Graphics.LEFT);
break;
case 3:
g.setColor(0x00ffffff);
g.drawRect(98,30,17,17);
g.setColor(0x008A56E8);
g.drawString("鐵甲,攻防",90,93,Graphics.TOP|Graphics.LEFT);
g.drawString(heroSprite.itemat[3]+"/"+heroSprite.itemdf[3]+",價格"+itemprice[3]+"G",40,107,Graphics.TOP|Graphics.LEFT);
break;
case 4:
g.setColor(0x00ffffff);
g.drawRect(117,30,17,17);
g.setColor(0x008A56E8);
g.drawString("銅衣,攻防",90,93,Graphics.TOP|Graphics.LEFT);
g.drawString(heroSprite.itemat[4]+"/"+heroSprite.itemdf[4]+",價格"+itemprice[4]+"G",40,107,Graphics.TOP|Graphics.LEFT);
break;
}
switch(keyState){
case LISTENER_RIGHT:
if(nowShopcho<4){
nowShopcho++;
}
break;
case LISTENER_LEFT:
if(nowShopcho>0){
nowShopcho--;
}
break;
case LISTENER_UP:
if(buynum<heroSprite.numEmpty && heroSprite.gold>=itemprice[nowShopcho]*(buynum+1)){
buynum++;
}
break;
case LISTENER_DOWN:
if(buynum>0){
buynum--;
}
break;
case 256://按下FIRE鍵
if(buynum!=0){
for(int i=0;i<=buynum;i++){
for(int j=0;j<12;j++){
if(heroSprite.itemcode[j]=='0'){
buynum--;
heroSprite.gold=heroSprite.gold-itemprice[nowShopcho];
heroSprite.itemcode[j]=chgToitemcode(nowShopcho);
break;
}
}
}
buynum=0;
try{
rs.setRecord(myid,heroSprite.chgTorms(false),0,heroSprite.chgTorms(false).length);
}catch(Exception e){System.out.println(e);}
}
break;
}
g.setColor(0x00ffffff);
g.drawString(String.valueOf(buynum),111,50,Graphics.TOP|Graphics.LEFT);
g.setColor(0x008A56E8);
g.drawString(String.valueOf(heroSprite.numEmpty),110,128,Graphics.TOP|Graphics.LEFT);
}
if(heroSprite.hp>heroSprite.maxhp){
heroSprite.hp=heroSprite.maxhp;
}
if(isOpenmisn==true){
g.drawImage(missionImage,20,15,Graphics.TOP|Graphics.LEFT);
g.setColor(0x00FFFF99);
g.drawString("您的任務(wù)",70,35,Graphics.TOP|Graphics.LEFT);
g.setColor(0x00FFFFFF);
g.drawString("勇士,獸族人在我",44,60,Graphics.TOP|Graphics.LEFT);
g.drawString("國邊境大肆殺戮,",44,75,Graphics.TOP|Graphics.LEFT);
g.drawString("舉國上下一片恐慌,",44,90,Graphics.TOP|Graphics.LEFT);
g.drawString("為了我們國家的存",44,105,Graphics.TOP|Graphics.LEFT);
g.drawString("亡,向這群暴虐的",44,120,Graphics.TOP|Graphics.LEFT);
g.drawString("野獸開戰(zhàn)吧!",44,135,Graphics.TOP|Graphics.LEFT);
}
g.setColor(0x008A56E8);
g.drawString(heroSprite.x+","+heroSprite.y,getWidth(),0,Graphics.TOP|Graphics.RIGHT);
g.drawImage(hplImage,-51+(int)84*heroSprite.hp/heroSprite.maxhp,0,Graphics.TOP|Graphics.LEFT);
g.drawImage(hpImage,0,0,Graphics.TOP|Graphics.LEFT);
g.drawRoundRect(0,getHeight()-6,40,5,3,3);//經(jīng)驗
g.fillRoundRect(0,getHeight()-5,(int)(heroSprite.exp-heroSprite.prevexp)*40/(heroSprite.nextexp-heroSprite.prevexp),3,3,3);
g.drawString("Lv"+heroSprite.lv,45,getHeight()-15,Graphics.TOP|Graphics.LEFT);
/*g.drawString(String.valueOf(monsterSprite.dir+1),25,getHeight()-25,Graphics.TOP|Graphics.LEFT);
g.drawString(String.valueOf(monsterSprite1.dir+1),25,getHeight()-35,Graphics.TOP|Graphics.LEFT);
g.drawString(String.valueOf(monsterSprite2.dir+1),25,getHeight()-45,Graphics.TOP|Graphics.LEFT);
g.drawString(monsterSprite.x+"/"+monsterSprite.y,45,getHeight()-25,Graphics.TOP|Graphics.LEFT);
g.drawString(monsterSprite1.x+"/"+monsterSprite1.y,45,getHeight()-35,Graphics.TOP|Graphics.LEFT);
g.drawString(monsterSprite2.x+"/"+monsterSprite2.y,45,getHeight()-45,Graphics.TOP|Graphics.LEFT);*/
flushGraphics();
break;
}
}
}
//精靈層疊次序的排序
public ASprite[] chgMonsterOrder(ASprite ms[]){
for(int l=0;l<ms.length-1;l++){
for(int m=0;m<ms.length-1;m++){
if(ms[m].dy>ms[m+1].dy){//根據(jù)Y值排序,本段采用了最簡單的冒泡排序法
tempMonster=ms[m];
ms[m]=ms[m+1];
ms[m+1]=tempMonster;
}
}
}
return ms;//返回排序結(jié)果
}
public char chgToitemcode(int itemcode){
switch(itemcode){
case 0:
return '5';
case 1:
return '1';
case 2:
return '2';
case 3:
return '3';
case 4:
return '4';
}
return '6';
}
/* (非 Javadoc)
* @see javax.microedition.midlet.MIDlet#startApp()
*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -