📄 xianjiancanvas.java
字号:
enemy3.setPosition(-44,84);
enemy.addElement(enemy1);
enemy.addElement(enemy2);
enemy.addElement(enemy3);
break;
case -154:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(-68,184);
xtmp=152;
ytmp=-100;
NpcRole npc2=new NpcRole("商人",13);
npc2.changeDir(2);
npc2.setPosition(60,160);
npc.addElement(npc2);
break;
case -126:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(-20,82);
xtmp=98;
ytmp=7;
if(eventID==8)
{
NpcRole npc1=new NpcRole("苗人",812);
npc1.changeDir(2);
npc1.setPosition(50,45);
npc.addElement(npc1);
}
break;
case -162:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(124,72);
xtmp=-46;
ytmp=9;
break;
case -127:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(-20,82);
xtmp=98;
ytmp=7;
break;
case -172:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(76,48);
xtmp=8;
ytmp=36;
break;
case -138:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(-8,130);
xtmp=92;
ytmp=-44;
if(eventID==7)
{
NpcRole npc1=new NpcRole("李大娘",711);
npc1.changeDir(3);
npc1.setPosition(12,38);
npc.addElement(npc1);
}
break;
case -183:
board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
player.setPosition(-42,75);
xtmp=122;
ytmp=5;
break;
default:
break;
}
}
}
/**
* 滚屏
*/
public void moveMap(){
if(player.x+xtmp<75){
xtmp+=2*player.speed;
}
if(player.x+xtmp>85){
xtmp-=2*player.speed;
}
if(player.y+ytmp<80){
ytmp+=player.speed;
}
if(player.y+ytmp>90){
ytmp-=player.speed;
}
}
/**
* 事件处理
*/
public void event(){
//System.out.println(eventid);
int [] cell = board.getCell(player.x,player.y);
if(eventID == 1){
keystate = 0;
bMess=true;
}
if(eventID == 2){
for(int i=0;i<npc.size();i++){
if (npc.elementAt(i) instanceof NpcRole) {
if(((NpcRole)(npc.elementAt(i))).getID()%1000/100==eventID)
{
((NpcRole)(npc.elementAt(i))).changeDir(2);
((NpcRole)(npc.elementAt(i))).move();
bEvent=true;
if(((NpcRole)(npc.elementAt(i))).y>80)
{
bMess=true;
npc.removeElementAt(i);
bEvent=false;
}
}
}
}
}
if(eventID == 3){
if(board.map.walk[cell[1]][cell[0]]==eventID){
npc.removeAllElements();
NpcRole npc1=new NpcRole("李大娘",411);
npc1.changeDir(2);
npc1.setPosition(34,130);
NpcRole npc2=new NpcRole("苗人",512);
npc2.changeDir(0);
npc2.setPosition(14,140);
NpcRole npc3=new NpcRole("苗人",522);
npc3.changeDir(0);
npc3.setPosition(-12,147);
NpcRole npc4=new NpcRole("苗人",532);
npc4.changeDir(0);
npc4.setPosition(14,160);
npc.addElement(npc1);
npc.addElement(npc2);
npc.addElement(npc3);
npc.addElement(npc4);
bEvent=true;
player.changeDir(1);
for(int i=0;i<7;i++){
player.move();
moveMap();
show();
}
player.changeDir(2);
for(int i=0;i<8;i++){
player.move();
moveMap();
show();
}
((NpcRole)(npc.elementAt(0))).changeDir(0);
bEvent=false;
bMess=true;
}
}
if(eventID == 4){
for(int i=0;i<npc.size();i++){
if (npc.elementAt(i) instanceof NpcRole) {
if(((NpcRole)(npc.elementAt(i))).getID()%1000/100==eventID)
{
bMess=false;
bEvent=true;
((NpcRole)(npc.elementAt(i))).changeDir(3);
((NpcRole)(npc.elementAt(i))).move();
if(((NpcRole)(npc.elementAt(i))).x<-20)
{
bEvent=false;
bMess=true;
npc.removeElementAt(i);
}
}
}
}
}
if(eventID == 5){
bEvent=true;
gameshow=false;
show();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
npc.removeAllElements();
gameshow=true;
bEvent=false;
eventID++;
}
if(eventID == 6){
bMess=true;
}
if(eventID == 7){
if(board.map.walk[cell[1]][cell[0]]==eventID){
keystate = 0;
bMess=true;
}
}
if(eventID == 8){
if(board.map.walk[cell[1]][cell[0]]==eventID){
keystate = 0;
player.changeDir(0);
for(int i=0;i<6;i++){
player.move();
moveMap();
show();
}
bMess=true;
}
}
}
class KeyTh extends Thread{
public void run() {
while(true){
if(enemy!=null){
enemymove++;
enemymove = enemymove%3;
for(int i=0;i<enemy.size();i++){
if (enemy.elementAt(i) instanceof Animal) {
Animal enemytmp = (Animal) enemy.elementAt(i);
if(Math.abs(player.x-enemytmp.x)<=14&&Math.abs(player.y-10-enemytmp.y)<=18){
keystate = 0;
enemy.removeElementAt(i);
bAttle = true;
batt.init();
show();
//batt.start();
}
}
}
}
if(!bAttle){
movePlayer();
moveMap();
event();
changeMap();
show();
}else if(bAttle){
batt.start();
}
System.out.println(bAttle+","+start);
//System.out.println(board.map.walk[cell[1]][cell[0]]);
//System.out.println(player.x+","+player.y+","+xtmp+","+ytmp);
}
}
}
public void show(){
repaint();
serviceRepaints();
try {
Thread.sleep(80);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 菜单
*/
class Menu
{
private final String selection[] = {"状 态","法 术","物 品","宠 物","任 务","系 统"};
private final String selectionsy[]= {"存取进度","读取进度","离开游戏"};
private final String selectionUseItem[] = {"使用/装备","取消"};
private final String selectionShop[] = {"购 买","出 售"};
private final int selectionBuyGoods[] = {1002,1005,2204};
private final int MAIN = 0,
STATE = 1,
MAGIC = 2,
ITEMS = 3,
SYSTEM = 4,
USEGOODS = 5,
TASK = 6,
PET = 7,
SAVE = 8,
LOAD = 9,
EXIT = 10,
SHOP = 11,
BUYGOODS = 12,
SALEGOODS= 13;
private int select,
selectit,
selectsy,
selectuse,
selectWeaCl,
selectShop,
selectSaleGoods,
selectBuyGoods,
selectPet;
public int onMenu;
Menu()
{
onMenu = -1;
select = 0;
selectit = 0;
selectsy = 0;
selectuse = 0;
selectWeaCl = 0;
selectShop = 0;
selectBuyGoods = 0;
selectSaleGoods= 0;
selectPet = 0;
}
/**
* 绘制菜单
* @param g
*/
public void drawMenu(Graphics g)
{
switch(onMenu){
case MAIN:
g.drawImage(XianJianImage.imgMenu,0,0,Graphics.LEFT|Graphics.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
for(int i=0;i<selection.length;i++)
{
g.setColor(0xffffff);
g.drawString(selection[i],30,i*15+5,Graphics.LEFT|Graphics.TOP);
}
g.setColor(0xffff00);
g.drawString(selection[select],30,select*15+5,Graphics.LEFT|Graphics.TOP);
g.setColor(0x000000);
g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
g.setColor(0xffffff);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
g.drawString("选择",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
break;
case STATE:
g.setColor(0x2d2d40);
g.fillRect(0,0,200,200);
g.setColor(0xFFFFFF);
g.drawImage(XianJianImage.kuang,0,0,Graphics.LEFT|Graphics.TOP);
g.drawImage(XianJianImage.rolestate,(canvasWidth-XianJianImage.rolestate.getWidth())/2,0,Graphics.LEFT|Graphics.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
g.drawString(""+player.getName(),5,15,Graphics.LEFT|Graphics.TOP);
g.drawImage(XianJianImage.imgPlayerd[0],20,40,Graphics.LEFT|Graphics.TOP);
g.drawString("经验 "+player.Exp+"/"+player.MaxExp,70,15,Graphics.LEFT|Graphics.TOP);
g.drawString("体力 "+player.HP+"/"+player.MaxHP,70,30,Graphics.LEFT|Graphics.TOP);
g.drawString("真气 "+player.MP+"/"+player.MaxMP,70,45,Graphics.LEFT|Graphics.TOP);
g.drawString("武力 "+player.wu,5,65,0);
g.drawString("灵力 "+player.ling,5,80,0);
g.drawString("身法 "+player.shen,5,95,0);
g.drawString("体质 "+player.ti,5,110,0);
g.drawString("吉运 "+player.ji,5,125,0);
g.drawString("等级 "+player.Level,5,140,Graphics.LEFT|Graphics.TOP);
g.setColor(0xb5b5d2);
g.fillRect(100,65,78,18*4);
g.setColor(0x706db0);
g.fillRect(100,65+selectWeaCl*18,78,18);
g.setColor(0xFFFFFF);
g.drawString("头戴 ",70,65,0);
g.drawString("衣服 ",70,65+18,0);
g.drawString("武器 ",70,65+18*2,0);
g.drawString("鞋子 ",70,65+18*3,0);
g.setColor(0);
for(int i=0;i<player.weaClList.length;i++){
if(player.weaClList[i]!=null){
g.drawString(player.weaClList[i].getName(),105,65+i*18,0);
}
if(player.weaClList[i]==null){
g.drawString("空",105,65+i*18,0);
}
}
g.setColor(0xFFFFFF);
g.drawString("金钱 "+player.money,80,140,Graphics.LEFT|Graphics.TOP);
g.setColor(0x000000);
g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
g.setColor(0xffffff);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
g.drawString("取下",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
break;
case MAGIC:
g.setColor(0x2d2d40);
g.fillRoundRect(0,40,179,100,8,8);
g.setColor(0x1e2d64);
g.drawRoundRect(0,40,179,100,8,8);
g.drawImage(XianJianImage.kuang,0,40,Graphics.LEFT|Graphics.TOP);
g.drawImage(XianJianImage.roleskill,(canvasWidth-XianJianImage.roleskill.getWidth())/2,40,Graphics.LEFT|Graphics.TOP);
g.setColor(0xFFFFFF);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
if(player.magicList!=null){
for(int i=0;i<player.magicList.length;i++){
g.drawString(player.magicList[i],15,65+i*15,Graphics.LEFT|Graphics.TOP);
}
}
else{
g.drawString("李逍遥未学任何法术",15,65,Graphics.LEFT|Graphics.TOP);
}
g.setColor(0x000000);
g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
g.setColor(0xffffff);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
break;
case ITEMS:
g.setColor(0x2d2d40);
g.fillRoundRect(0,0,179,176,8,8);
g.setColor(0x1e2d64);
g.drawRoundRect(0,0,179,176,8,8);
g.setColor(0xffffff);
g.drawLine(0,105,179,105);
g.drawImage(XianJianImage.kuang,0,0,Graphics.LEFT|Graphics.TOP);
g.drawImage(XianJianImage.bag,(canvasWidth-XianJianImage.bag.getWidth())/2,0,Graphics.LEFT|Graphics.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
if(player.goodsList.size()>0){
g.setColor(0xffffff);
if(player.goodsList.size()>3&&selectit<player.goodsList.size()-1){
g.fillTriangle(160,80,170,80,165,90);
}
if(selectit>3){
g.fillTriangle(160,30,170,30,165,20);
}
if(selectit<=3){
for(int i=0;i<player.goodsList.size()&&i<=3;i++){
g.drawString(((ItemManager) player.goodsList.elementAt(i)).getItem().getName(),30,i*20+15,Graphics.LEFT|Graphics.TOP);
if(((ItemManager) player.goodsList.elementAt(i)).getItem().img!=null)
g.drawImage(((ItemManager) player.goodsList.elementAt(i)).getItem().img,10,i*20+17,Graphics.LEFT|Graphics.TOP);
g.drawString(""+((ItemManager) player.goodsList.elementAt(i)).getItemNum(),130,i*20+15,Graphics.LEFT|Graphics.TOP);
}
}
if(selectit>3){
for(int i=selectit-3;i<player.goodsList.size()&&i<=selectit;i++){
g.drawString(((ItemManager) player.goodsList.elementAt(i)).getItem().getName(),30,i*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
if(((ItemManager) player.goodsList.elementAt(i)).getItem().img!=null)
g.drawImage(((ItemManager) player.goodsList.elementAt(i)).getItem().img,10,i*20+17-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
g.drawString(""+((ItemManager) player.goodsList.elementAt(i)).getItemNum(),130,i*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
}
}
g.setColor(0xff0000);
if(selectit<=3){
g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().getName(),30,selectit*20+15,Graphics.LEFT|Graphics.TOP);
g.drawString(""+((ItemManager) player.goodsList.elementAt(selectit)).getItemNum(),130,selectit*20+15,Graphics.LEFT|Graphics.TOP);
}
if(selectit>3){
g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().getName(),30,selectit*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
g.drawString(""+((ItemManager) player.goodsList.elementAt(selectit)).getItemNum(),130,selectit*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
}
if(selectit>player.goodsList.size()-1){
selectit=0;
}
g.setColor(0xffffff);
for(int i = 0;i<((ItemManager) player.goodsList.elementAt(selectit)).getItem().description.length;i++){
g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().description[i],5,110+15*i,Graphics.LEFT|Graphics.TOP);
}
}
else{
g.drawString("没有物品",5,20,Graphics.LEFT|Graphics.TOP);
}
g.setColor(0x000000);
g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
g.setColor(0xffffff);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
g.drawString("选择",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -