return str;
}
mouseClickCheck
クリックしっぱなしを判定する処理。
各クラスの一通りのマウスイベントを通した最後の場所に配置する。
mouseCanselCheck
これも上の物と似ているが、座標と関係なく作動させるのが違う。
右クリックしつつ、押しっぱなしでない場合のみ作動させる。
押しっぱなしでも作動するようにしてしまうと、一度押すだけで連打してしまう。
messageScan
今回の新処理。新しく作ったItemEditorクラスで使い始めた。
コンソール上から日本語入力できるので、アイテム名の設定に使っている。
本当はゲーム画面から入力できるのがベストだが、やり方がわからない。
今できるのはこれしかないので、妥協したやり方でひとまず良しとした。
上達したら直すと思う。
ひらがな、カタカナのみならできるんだけどねぇ…。
追加分はこんな感じ。かなり長くなるが、ItemEditor本体のコードを丸ごとコピペしておく。
import java.awt.Graphics;
public class ItemEditor {
public Graphics g;
private GameData gData=null;
public GraphicSet gSet=null;
public boolean editEnd=false;
public int[] cursorX=new int[60];
public int[] cursorY=new int[60];
public int[] cursorPos=new int[60];
public int[] cursorMax=new int[60];
public int mode=0;
public int[][][] iData=null;
public String[][] iName=null;
public int keepItemNumber=0;
public int keepType=0;
public int keepNum=0;
private final int ITEMMAX=999;
public int[] setNumber=null;
public int setNumber_max=0;
public DataSaveLoad dataSL=null;
public int infoMesCount=0;
public String infoMes="";
public int setType=0;
public int keepMode=0;
public int setCategory=0;
public int setItemNumber=0;
public int setItemStatus=0;
public ItemEditor() {
gData=new GameData();
gSet=new GraphicSet();
dataSL=new DataSaveLoad();
init();
}
public void init() {
editEnd=false;
mode=1;
for (int i=0;i<=59;i++) {
cursorX[i]=0;
cursorY[i]=0;
cursorPos[i]=0;
cursorMax[i]=0;
}
cursorMax[1]=3;
cursorMax[2]=99;
cursorMax[3]=11;
iData=new int[5][101][21]; //カテゴリーごとに管理。
iName=new String[5][101];
for (int i=0;i<=4;i++) { //カテゴリー
for (int j=0;j<=99;j++) { //材質
iName[i][j]="――――――";
for (int k=0;k<=20;k++) { //材質ごとの実データ 20あれば足りると思う
iData[i][j][k]=0;
}
}
}
setNumberInit(4,0,0);
keepItemNumber=0;
keepType=0;
keepNum=0;
infoMesCount=0;
infoMes="";
setCategory=0;
setItemNumber=0;
setItemStatus=0;
}
public void setNumberInit(int max,int type,int kmode) {
setNumber=new int[11];
for (int i=0;i<=10;i++) {
setNumber[i]=0;
}
setNumber_max=max;
setType=type;
keepMode=kmode;
}
public void dataSet(GameData gdt) {
init();
gData=gdt;
//このエディターはセーブデータが固定なのでこの段階でデータを読み込んでおく。
//セーブは任意のタイミングでやるので、オートロードだけ実装する。
iData=dataSL.itemDataLoad();
iName=dataSL.itemNameLoad();
}
public void eventStart(GameData gdt) {
gData=gdt;
int pushKey=0;
int cPlus=0;
int modeChange=0;
//gDataにごっそり移動してみた。キーの受け取り方が変わるが、相当行を圧縮できる。
//ほかのエディターもこっちのやり方に差し替えていく。
pushKey=gData.ppKeyCheck();
if (pushKey==8) cPlus=-1;
if (pushKey==1) cPlus=1;
if (pushKey==2 && mode==2) cPlus=-20;
if (pushKey==3 && mode==2) cPlus=20;
cursorPos[mode]+=cPlus;
if (cursorPos[mode] > cursorMax[mode]) cursorPos[mode]=0;
if (cursorPos[mode] < 0) cursorPos[mode]=cursorMax[mode];
int cpos=cursorPos[mode];
if (gData.clickC==1) {
//modeChange=1;
if (gData.buttonCheck(20,0,60,30,0) ) editEnd=true; //終了ボタン
if (gData.buttonCheck(80,0,60,30,0) ) { //SAVEボタン
dataSL.itemDataSave(iData);
dataSL.itemNameSave(iName);
infoMesSet(1);
}
if (gData.buttonCheck(140,0,60,30,0) ) { //LOADボタン
//oData=dataSL.objDataLoad(mapNumber,floorNumber);
iData=dataSL.itemDataLoad();
iName=dataSL.itemNameLoad();
infoMesSet(2);
}
}
switch (mode) {
case 1://総合メニュー
if (pushKey==4) {
setCategory=cursorPos[mode]+1;
modeChange=2;
}
if (pushKey==5) {
editEnd=true;
}
for (int i=0;i<=3;i++) {
if (gData.buttonCheck(20,60+i*22,80,22,0) ) {
setCategory=i+1;
cursorPos[mode]=i;
modeChange=2;
}
}
break;
case 2://データ設定するアイテム名を選ぶ
if (pushKey==4) {
setItemNumber=cursorPos[mode];
modeChange=3;
}
if (pushKey==5) modeChange=1;
int page=cursorPos[2]/20;
for (int i=0;i<=19;i++) {
if (gData.buttonCheck(280,60+i*22,60,22,0) ) {
setItemNumber=i+page*20;
String mes[]=null;
String str=gData.messageScan(mes);
iName[setCategory][setItemNumber]=str;
}
if (gData.buttonCheck(140,60+i*22,120,22,0) ) {
setItemNumber=page+i;
cursorPos[2]=setItemNumber;
modeChange=3;
}
}
if (gData.mouseCanselCheck() ) modeChange=1;
break;
case 3: //変更するデータを選ぶ。
if (pushKey==4) {
setItemStatus=cursorPos[mode];
setNumberInit(6,1,3);
modeChange=4;
}
if (pushKey==5) modeChange=2;
if (gData.mouseCanselCheck() ) modeChange=2;
break;
case 4: //データを入力する。objeditorで作ったキー入力ウィンドウを使う。
if (pushKey==4 || pushKey==6) {