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

📄 gamecanvas.java

📁 游戏功能包括:购买、对话、战斗及存储功能
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Random;
import java.util.Vector;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreNotFoundException;

/*
 * Created on 2007-6-15
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class GameCanvas extends Canvas implements Runnable{
	GameMidlet m;
	RecordStore rs;
	String[] menu = {"开始新游戏","读取游戏","游戏背景","帮    助","退出游戏"};
	String[] str = {"买","卖","道具名称","价格","数量","确定","重设","退出"};
	int select = 0,select1 = 0,select2 = 0,select3 = 0,select4 = 0,select5 = 0,select6 = 0;	//选择
	String[][] place = {
			{"红 豆 村","红豆村外","红豆城堡"},
			{"橙 橘 村","橙橘村外","橙橘城堡"},
			{"黄 土 村","黄土村外","黄土城堡"},
			{"绿 荫 村","绿荫村外","绿荫城堡"},
			{"青 竹 村","青竹村外","青竹城堡"},
			{"蓝 莲 村","蓝莲村外","蓝莲城堡"},
			{"紫 桐 村","紫桐村外","紫桐城堡"}		
	};
	int change = 0;					//选择对话框属性,0是买卖选择,1是物品栏选择,2是购买选择
	int screenState = 0;
	//-1是LOGO界面动画,0是菜单界面,1是游戏界面,2是战斗界面
	int checkPoint;					//关卡数
	private boolean talk = false;	//是否处于对话状态
	private boolean buy = false;	//是否处于购买状态
	private boolean add = false,subtract = false;	//加减状态
	private boolean function = false;				//功能界面是否打开
	private boolean selected = false;				//物品是否被选中
	private boolean stateRunnable = false;			//状态开关是否打开
	private boolean recordOpen = false;				//记录是否被打开
	private boolean placeState = false;				//地点改变时触发的状态
	private boolean fightMenuCtrl = false;			//战斗界面菜单控制器
	private boolean selectState = false;			//战斗选择状态是否打开
	private boolean attackState = false;			//攻击状态
	private boolean attackedState = false;			//被攻击后的状态显示
	private boolean chooseState = false;			//战斗状态按钮触发器
	private boolean deadState = false;				//是否处于死亡状态
	private boolean unUseState = false;				//可用物品状态
	private boolean fightOverState = false;			//战斗结束状态
	private boolean infoStart = true;				//开始菜单事件触发器
	private boolean gameOver = false;				//游戏全部结束触发事件开关
	private int infomation = 0;						//事件触发信息
	private int overEvent = 0;
	//战斗结束事件触发,0为无事件状态,1是战斗胜利,2是战斗失败
	private int isAttacked = 0;
	//是否被攻击,0是无攻击效果,1是被攻击状态,2是躲闪状态
	private int fightState = 0;				
	//战斗状态,0是不战斗,1是与NPC战斗,2是与BOSS战斗
	private int placeChange = 0;					
	//地点改变时的位置,0是初始位置,1是村内,2是村外,3是boss基地
	private int recordState = 0;	
	//存储记录状态,0是无存储状态,1是存储,2是读取,3是无读取状态,4是删除,5是无删除状态
	int talkState = 0;
	//说话状态,0是没有,1是与村长的对话状态,2是与防具商对话状态,
	//3是与药材商对话状态,4是与boss战斗前对话状态,5与boss战斗后对话
	int chooseEnd = 0;
	//选择效果,0是无效果,1是攻击气杀,2是普通攻击,3是道具状态,4是防御骤增,5是撤退效果
	
	/***************PLAYER属性***************/
	private int pFount = 0;					//人物行走方向
	private int pFrame = 0;					//人物桢变化
	private int prow = 0;					//人物坐标
	private int pcol = 0;
	private int pLevel = 0;					//等级
	private int currentExpValue = 0;		//当前经验值
	private int maxExpValue = 0;			//最大经验值
	private int current_pLifeValue = 0;		//当前生命值
	private int max_pLifeValue = 0;			//最大生命值
	private int current_pPower = 0;			//当前气功值
	private int max_pPower = 0;				//最大气功值
	private int pAttack = 0;				//攻击力
	private int pDefense = 0;				//防御力
	private int pHit = 0;					//命中值
	private int pFends = 0;					//闪避值
	private int pJust = 0;					//正义值
	private int pMoney = 0;					//player金钱
	
	/***************NPC属性***************/
	private int[] nFrame = {0,0,0};			//npc桢变化
	private int[] nStyle = {-1,-1,-1};		//npc的类型,0是绿怪,1是矮怪,2是boss
	private int nNum = 0;					//npc的数量,不超过3个
	
	/***************绘制开始菜单***************/
	private void drawBegin(Graphics g){
		g.setClip(0,0,w,h);
		g.drawImage(bei,0,0,20);
		g.setColor(0x4193a8);
		g.setFont(font1);
		for(int i=0;i<5;i++){
			if(select==i){
				g.setColor(0xaae7f7);
			}
			else
				g.setColor(0x4193a8);
			g.drawString(menu[i],90,130+i*20,Graphics.TOP|Graphics.HCENTER);
		}
	}
	
	String[] gameFront = {
			"       在纷乱缭绕的战国时期,干将偕同妻子",
			"莫邪准备退出战乱,隐居深山。孰料在经过",
			"天魔山山脚时,一阵狂风肆虐,沙石四起,",
			"二人顿时眼前一片漆黑。过了不知多久,天",
			"色逐渐好转,眼前的山清水色依然没有变,",
			"只是干将觉得好象少了什么,回头一看,妻",
			"子莫邪已杳无身影,干将随即向过路人群询",
			"问后才得知,妻子原来是被这天魔山的妖怪",
			"掳走了,愤慨之下,干将重新背起宝剑,向",
			"着天魔山进发......"
	};
	/***************绘制菜单触发事件***************/
	int infoY;			//字幕滚屏Y坐标
	private void drawInfomation(Graphics g){
		if(infomation==1){
			g.setClip(w/2-50,h/2-23,100,46);
			g.setColor(0x000000);
			g.fillRect(w/2-50,h/2-23,100,46);
			g.setColor(0x494949);
			g.fillRect(w/2-48,h/2-21,96,42);
			g.setColor(0xffff00);
			g.setFont(font);
			g.drawString("没有读取记录",w/2,h/2-18,Graphics.TOP|Graphics.HCENTER);
			g.drawString("请开始游戏",w/2,h/2+1,Graphics.TOP|Graphics.HCENTER);
		}
		else if(infomation==2){
			g.setColor(0x000000);
			g.fillRect(10,h/2-100,220,200);
			g.setColor(0x505155);
			g.fillRect(12,h/2-70,216,140);
			g.setColor(0xffff00);
			g.setFont(font);
			g.setClip(12,h/2-70,216,140);
			for(int i=0;i<10;i++){
				g.drawString(gameFront[i],15,infoY+i*20,20);
			}
		}
		else if(infomation==3){
			g.setColor(0x000000);
			g.fillRect(10,h/2-100,220,200);
			g.setColor(0x505155);
			g.fillRect(12,h/2-98,216,196);
			g.setColor(0xffff00);
			g.setFont(font);
			g.drawString("游戏说明:",15,h/2-95,20);
			g.drawString("       该游戏为RPG单机游戏,游戏共有七关,",15,h/2-75,20);
			g.drawString("每关难度都会增加,本游戏纯属娱乐,不做",15,h/2-55,20);
			g.drawString("商业用途。",15,h/2-35,20);
			g.drawString("游戏控制:",15,h/2-15,20);
			g.drawString("       本游戏操作简易,只需键盘上、下、左、",15,h/2+5,20);
			g.drawString("右、确定控制游戏的前进、后退、左行进、",15,h/2+25,20);
			g.drawString("右行进、选择确定;左软键控制游戏的功",15,h/2+45,20);
			g.drawString("能选项,右软键控制游戏进程。",15,h/2+65,20);
		}
	}
	
	/***************MAP属性***************/
	private int outcol = 0;					//列偏移
	private int outrow = 0;					//行偏移
	private final byte MyMap_map[][] = {
		{ 29, 30, 29, 30, 29, 30, 53, 54, 2, 13, 13, 2, 55, 56, 29, 30, 29, 30, 29, 30 },
		{ 41, 41, 41, 41, 41, 41, 65, 66, 2, 13, 13, 2, 67, 68, 41, 41, 41, 41, 41, 41 },
		{ 2, 2, 2, 2, 2, 2, 77, 78, 2, 13, 13, 2, 79, 80, 2, 2, 2, 2, 2, 2 },
		{ 2, 2, 2, 2, 2, 2, 89, 90, 2, 13, 13, 2, 91, 92, 2, 2, 2, 2, 2, 2 },
		{ 85, 86, 85, 86, 2, 2, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 85, 86, 85, 86 },
		{ 29, 30, 29, 30, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 29, 30, 29, 30 },
		{ 41, 41, 41, 41, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 41, 41, 41, 41 },
		{ 41, 41, 41, 41, 29, 30, 29, 30, 42, 42, 42, 42, 29, 30, 29, 30, 41, 41, 41, 41 },
		{ 14, 14, 14, 14, 41, 41, 41, 41, 42, 42, 42, 42, 41, 41, 41, 41, 14, 14, 14, 14 },
		{ 2, 2, 2, 14, 41, 41, 41, 41, 42, 42, 42, 42, 41, 41, 41, 41, 14, 2, 2, 2 },
		{ 2, 2, 2, 14, 14, 14, 14, 14, 42, 42, 42, 42, 14, 14, 14, 14, 14, 2, 2, 2 },
		{ 2, 2, 2, 2, 2, 2, 7, 8, 13, 13, 73, 13, 13, 74, 13, 13, 13, 13, 7, 8 },
		{ 2, 2, 2, 2, 2, 2, 19, 20, 13, 74, 13, 13, 13, 13, 13, 13, 74, 73, 19, 20 },
		{ 5, 6, 2, 2, 2, 2, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 13, 13, 7, 8 },
		{ 17, 18, 2, 2, 2, 2, 19, 20, 19, 20, 19, 20, 19, 20, 19, 20, 13, 13, 19, 20 },
		{ 2, 13, 13, 73, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 74, 13, 13, 13, 2 },
		{ 2, 13, 13, 13, 13, 13, 74, 13, 73, 13, 13, 13, 74, 13, 13, 73, 13, 13, 29, 30 },
		{ 29, 42, 42, 42, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 41, 41 },
		{ 41, 42, 42, 42, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 2, 2 },
		{ 2, 42, 42, 42, 2, 13, 74, 13, 13, 13, 13, 13, 74, 13, 2, 2, 13, 13, 13, 13 },
		{ 2, 74, 13, 13, 13, 13, 13, 3, 4, 13, 3, 4, 13, 73, 13, 74, 13, 13, 73, 13 },
		{ 2, 13, 13, 73, 13, 13, 2, 15, 16, 2, 15, 16, 2, 13, 13, 13, 2, 2, 29, 30 },
		{ 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 42, 42, 42, 29, 30, 41, 41 },
		{ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 41, 41, 2, 2 },
		{ 2, 2, 2, 13, 13, 13, 13, 13, 13, 73, 13, 13, 13, 42, 42, 42, 13, 13, 13, 13 },
		{ 2, 13, 13, 73, 13, 3, 4, 13, 13, 3, 4, 13, 74, 13, 13, 13, 74, 13, 73, 13 },
		{ 2, 13, 74, 13, 2, 15, 16, 2, 2, 15, 16, 13, 13, 13, 73, 13, 2, 2, 29, 30 },
		{ 29, 42, 42, 42, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 41, 41 },
		{ 41, 42, 42, 42, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 2, 2 },
		{ 2, 42, 42, 42, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 8, 75, 76, 2, 2, 2 },
		{ 2, 13, 13, 13, 13, 13, 13, 74, 13, 13, 2, 2, 2, 19, 20, 87, 88, 2, 2, 2 },
		{ 2, 13, 13, 13, 13, 73, 13, 13, 13, 13, 2, 2, 2, 2, 3, 4, 2, 2, 2, 2 },
		{ 2, 7, 8, 2, 2, 49, 50, 9, 10, 11, 12, 2, 3, 4, 15, 16, 2, 2, 5, 6 },
		{ 2, 19, 20, 2, 2, 61, 62, 21, 22, 23, 24, 2, 15, 16, 2, 2, 2, 2, 17, 18 },
		{ 1, 1, 1, 1, 1, 1, 1, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 1, 1, 1, 1, 1, 1, 57, 58, 59, 60, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 1, 1, 1, 1, 1, 1, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 1, 1, 1, 1, 1, 1, 69, 70, 71, 72, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 7, 8, 2, 2, 2, 5, 6, 81, 82, 83, 84, 2, 2, 7, 8, 2, 7, 8, 2, 2 },
		{ 19, 20, 2, 2, 2, 17, 18, 93, 94, 95, 96, 2, 2, 19, 20, 2, 19, 20, 2, 2 },
		{ 2, 2, 75, 76, 2, 2, 2, 2, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
		{ 2, 2, 87, 88, 13, 13, 13, 73, 13, 13, 2, 3, 4, 2, 2, 5, 6, 5, 6, 2 },
		{ 2, 3, 4, 13, 51, 52, 13, 13, 13, 2, 2, 15, 16, 75, 76, 17, 18, 17, 18, 2 },
		{ 2, 15, 16, 13, 63, 64, 2, 43, 7, 8, 49, 50, 2, 87, 88, 2, 2, 13, 13, 13 },
		{ 2, 32, 5, 6, 73, 13, 13, 73, 19, 20, 61, 62, 2, 2, 25, 26, 13, 13, 74, 13 },
		{ 2, 2, 17, 18, 2, 13, 13, 74, 13, 2, 2, 2, 32, 44, 37, 38, 13, 13, 2, 43 },
		{ 2, 25, 26, 2, 2, 2, 2, 13, 13, 13, 2, 31, 2, 2, 13, 13, 73, 13, 3, 4 },
		{ 2, 37, 38, 44, 31, 49, 50, 2, 73, 13, 5, 6, 2, 13, 73, 74, 13, 2, 15, 16 },
		{ 13, 13, 13, 2, 2, 61, 62, 2, 13, 13, 17, 18, 13, 13, 13, 7, 8, 75, 76, 2 },
		{ 13, 73, 13, 13, 13, 13, 13, 51, 52, 13, 74, 13, 73, 13, 2, 19, 20, 87, 88, 2 },
		{ 2, 43, 13, 13, 13, 74, 13, 63, 64, 13, 13, 13, 13, 2, 32, 44, 2, 2, 7, 8 },
		{ 75, 76, 2, 2, 5, 6, 2, 2, 5, 6, 13, 13, 2, 2, 2, 27, 28, 2, 19, 20 },
		{ 87, 88, 2, 2, 17, 18, 7, 8, 17, 18, 13, 13, 74, 2, 2, 39, 40, 2, 2, 2 },
		{ 2, 2, 2, 3, 4, 2, 19, 20, 2, 2, 2, 13, 51, 52, 74, 13, 13, 13, 2, 2 },
		{ 2, 2, 2, 15, 16, 5, 6, 2, 13, 13, 73, 13, 63, 64, 13, 73, 13, 74, 13, 43 },
		{ 2, 2, 2, 7, 8, 17, 18, 13, 74, 13, 13, 74, 13, 27, 28, 2, 2, 13, 73, 13 },
		{ 2, 2, 2, 19, 20, 2, 13, 73, 13, 7, 8, 13, 13, 39, 40, 2, 49, 50, 13, 13 },
		{ 2, 2, 7, 8, 2, 73, 13, 13, 2, 19, 20, 13, 73, 13, 13, 31, 61, 62, 2, 2 },
		{ 3, 4, 19, 20, 13, 13, 13, 5, 6, 2, 2, 3, 4, 13, 13, 3, 4, 75, 76, 2 },
		{ 15, 16, 2, 13, 13, 13, 43, 17, 18, 2, 2, 15, 16, 2, 2, 15, 16, 87, 88, 2 }
	};

	private final byte MyMap_collides[][] = {
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},
		{1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
		{0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1},
		{1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 1, 1},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 5, 5},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
		{1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0},
		{1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0},
		{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 4, 1, 0},
		{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 4, 0, 0, 0},
		{0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0},
		{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1},
		{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0},
		{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
		{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1},
		{1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1},
		{1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
		{0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
		{0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0},
		{0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 3, 1, 1, 1, 0, 0},
		{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 0},
		{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 1, 1, 0},
	};
	
	
	/***************绘制地图***************/
	private void drawMap(Graphics g){
		int tempx = 0,tempy = 0;
		for(int i=outrow;i<outrow+18;i++){
			for(int j=outcol;j<outcol+15;j++){
				g.setClip((j-outcol)*16,(i-outrow)*16,16,16);
				if(MyMap_map[i][j]!=0){
					tempx = (j-outcol)*16-(MyMap_map[i][j]-1)%12*16;
					tempy = (i-outrow)*16-(MyMap_map[i][j]-1)/12*16;
					g.drawImage(map,tempx,tempy,20);
				}		
			}
		}
	}
	
	/***************绘制主角***************/
	private void drawPlayer(Graphics g){
		g.setClip((pcol-outcol)*16,(prow-outrow)*16,32,32);
		g.drawImage(player,(pcol-outcol)*16-pFrame*32,(prow-outrow)*16-pFount*32,20);
	}
	
	/***************绘制剧情NPC***************/
	private int cun_X = 0,cun_Y = 0;			//npc的偏移坐标
	private int fang_X = 0,fang_Y = 0;
	private int medicine_X = 0,medicine_Y = 0;
	private void drawPlayNpc(Graphics g){
			g.setClip((cun_Y-outcol)*16,(cun_X-outrow)*16,32,32);
			g.drawImage(cunzhang_npc,(cun_Y-outcol)*16,(cun_X-outrow)*16,20);
			g.setClip((fang_Y-outcol)*16,(fang_X-outrow)*16,32,32);
			g.drawImage(fangju_npc,(fang_Y-outcol)*16,(fang_X-outrow)*16,20);
			g.setClip((medicine_Y-outcol)*16,(medicine_X-outrow)*16,32,32);
			g.drawImage(medicine_npc,(medicine_Y-outcol)*16,(medicine_X-outrow)*16,20);
	}
	
	/***************绘制对话框***************/
	String[] talk_about = {
			"请问这位大爷,这是天魔山吗?",						//P  0
			"是呀,小伙子,你到这里做什么?",						//C  1
			"我的女友被这山上的怪物掳走了,",						//P  2
			"我要去救她。",									//P  3
			"唉,小伙子,我劝你还是别去了。",						//C  4
			"为什么......",									//P  5
			"这天魔山共有七层,由七个胞胎怪",						//C  6
			"物常年在此驻守着,它们呼风唤雨,",					//C  7
			"力量无穷,实在是太厉害了。每年",						//C  8
			"它们都会到我们村子掳走很多的女",						//C  9
			"人,村中比较强壮的男人集中起来",						//C  10
			"与它们抗争,可是死伤无数,如今",						//C  11
			"村民逃命的逃命,已经没有多少人",						//C  12
			"了,我劝你还是赶快回去吧。",						//C  13
			"没想到这七个怪物如此作恶多端,",						//P  14
			"我怎能坐视不理?为救女友,为了",						//P  15
			"你们大家,我一定要将它们除去。",						//P  16
			"小伙子,你叫什么名字?",							//C  17
			"我叫干将!",										//P  18
			"",												//C  19
			"",												//C  20
			"去,我这把老骨头还有我的村民一定",					//C  21
			"会助你一臂之力。",								//C  22
			"不用了,老人家,我一个人上山就可",					//P  23
			"以了,你们听我的好消息吧。",						//P  24
			"那小伙子,祝你好运!",								//C  25
			"一路小心,我代表村民们感谢你!",						//C  26
			"出售各种防具,兄弟,随便看看吧。",					//F  27
			"出售各种药材,帅哥,随便看看吧。",					//Y  28
			"让我看看有什么好东西。",							//P  29
			"不了,我还要赶路呢。",								//P  30
			"唉,生意难做啊!"	,								//F  31	
			"哈哈......居然有人来送死!",						//B  32
			"......................",						//P  33
			"一个白痴嘛,这么猖狂......",						//P  34
			"什么,居然敢在我面前无礼,找死!",					//B  35

⌨️ 快捷键说明

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