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