📄 gamecanvas.java
字号:
Message = Configration.DialogForAngle1[b_DialogIndexForAngle];
}
else
{
if(b_DialogIndexForAngle >= Configration.DialogForAngle2.length - 1)
{
b_DialogIndexForAngle =(byte)(Configration.DialogForAngle2.length - 1);
is_Move = true;
if(!is_DialogedForAngle)
{
is_DialogedForAngle = true;
HeroLvUp(5);
}
}
Message = Configration.DialogForAngle2[b_DialogIndexForAngle];
}
}
private void DialogForJack() //处理与JACK的对话
{
if(!hasPickax)
{
if(b_DialogIndexForJack >= Configration.DialogForJack1.length - 1)
{
b_DialogIndexForJack =(byte)(Configration.DialogForJack1.length - 1);
is_Move = true;
if(!is_DialogedForJack)
{
is_DialogedForJack = true;
OpenStore();
try
{
byte buffer[] = rs.getRecord(3);
buffer[309] = 120;
rs.setRecord(3, buffer, 0, buffer.length);
}
catch(Exception e)
{
e.printStackTrace();
}
CloseStore();
}
}
Message = Configration.DialogForJack1[b_DialogIndexForJack];
}
else
{
if(b_DialogIndexForJack >= Configration.DialogForJack2.length - 1)
{
b_DialogIndexForJack =(byte)(Configration.DialogForJack2.length - 1);
is_Move = true;
if(!is_DialogedForJack)
{
is_DialogedForJack = true;
OpenStore();
try
{
byte buffer[] = rs.getRecord(3);
setValue();
buffer[2271] = 120;
buffer[2282] = 120;
rs.setRecord(3, buffer, 0, buffer.length);
}
catch(Exception e)
{
e.printStackTrace();
}
CloseStore();
}
}
Message = Configration.DialogForJack2[b_DialogIndexForJack];
}
}
private void DialogForLevelUp() //处理与蓝衣老头的对话
{
if(!hasExp)
{
if(b_Stage == 2)
{
if(b_DialogIndexForLevelUp >= Configration.DialogForLevelUp1.length - 1)
{
b_DialogIndexForLevelUp =(byte)(Configration.DialogForLevelUp1.length - 1);
is_Move = true;
if(!is_DialogedForLevelUp)
{
is_DialogedForLevelUp = true;
HeroAc += 30;
setValue();
}
}
Message = Configration.DialogForLevelUp1[b_DialogIndexForLevelUp];
if(b_DialogIndexForLevelUp >= Configration.DialogForLevelUp1.length - 1)
{
b_DialogIndexForLevelUp = 0;
}
}
else
{
if(b_DialogIndexForLevelUp >= Configration.DialogForLevelUp2.length - 1)
{
b_DialogIndexForLevelUp =(byte)(Configration.DialogForLevelUp2.length - 1);
is_Move = true;
if(!is_DialogedForLevelUp)
{
is_DialogedForLevelUp = true;
is_DialogedForLevelUp15 = true;
}
}
Message = Configration.DialogForLevelUp2[b_DialogIndexForLevelUp];
if(b_DialogIndexForLevelUp >= Configration.DialogForLevelUp2.length - 1)
{
b_DialogIndexForLevelUp = 0;
}
}
}
else
{
if(b_DialogIndexForLevelUp >= Configration.DialogForLevelUp3.length - 1)
{
b_DialogIndexForLevelUp =(byte)(Configration.DialogForLevelUp3.length - 1);
is_Move = true;
if(!is_DialogedForLevelUp)
{
is_DialogedForLevelUp = true;
HeroExp -= 500;
HeroAc += 120;
setValue();
}
}
Message = Configration.DialogForLevelUp3[b_DialogIndexForLevelUp];
}
}
private void DialogForBuyKey() //处理与红衣商人的对话
{
if(!hasMoney)
{
if(b_Stage == 2)
{
if(b_DialogIndexForBuyKey >= Configration.DialogForBuyKey1.length - 1)
{
b_DialogIndexForBuyKey =(byte)(Configration.DialogForBuyKey1.length - 1);
is_Move = true;
if(!is_DialogedForBuyKey)
{
is_DialogedForBuyKey = true;
HeroDc += 30;
setValue();
}
}
Message = Configration.DialogForBuyKey1[b_DialogIndexForBuyKey];
if(b_DialogIndexForBuyKey >= Configration.DialogForBuyKey1.length - 1)
{
b_DialogIndexForBuyKey = 0;
}
}
else
{
if(b_DialogIndexForBuyKey >= Configration.DialogForBuyKey2.length - 1)
{
b_DialogIndexForBuyKey =(byte)(Configration.DialogForBuyKey2.length - 1);
is_Move = true;
if(!is_DialogedForBuyKey)
{
is_DialogedForBuyKey = true;
is_DialogedForBuyKey15 = true;
}
}
Message = Configration.DialogForBuyKey2[b_DialogIndexForBuyKey];
if(b_DialogIndexForBuyKey >= Configration.DialogForBuyKey2.length - 1)
{
b_DialogIndexForBuyKey = 0;
}
}
}
else
{
if(b_DialogIndexForBuyKey >= Configration.DialogForBuyKey3.length - 1)
{
b_DialogIndexForBuyKey =(byte)(Configration.DialogForBuyKey3.length - 1);
is_Move = true;
if(!is_DialogedForBuyKey)
{
is_DialogedForBuyKey = true;
HeroMoney -= 800;
HeroDc += 120;
setValue();
}
}
Message = Configration.DialogForBuyKey3[b_DialogIndexForBuyKey];
}
}
private void DialogForBeelzeBub()
{
switch(b_Stage)
{
case 16:
if(b_DialogIndexForBeelzeBub >= Configration.DialogForBeelzeBub1.length - 1)
{
b_DialogIndexForBeelzeBub =(byte)(Configration.DialogForBeelzeBub1.length - 1);
is_Move = true;
if(!is_DialogedForBeelzeBub)
{
is_DialogedForBeelzeBub = true;
}
}
Message = Configration.DialogForBeelzeBub1[b_DialogIndexForBeelzeBub];
break;
case 19:
if(!BeelzeBubIsDead)
{
if(b_DialogIndexForBeelzeBub >= Configration.DialogForBeelzeBub2.length - 1)
{
b_DialogIndexForBeelzeBub =(byte)(Configration.DialogForBeelzeBub2.length - 1);
is_Move = true;
if(!is_DialogedForBeelzeBub)
{
is_DialogedForBeelzeBub = true;
}
}
Message = Configration.DialogForBeelzeBub2[b_DialogIndexForBeelzeBub];
}
else
{
if(b_DialogIndexForBeelzeBub >= Configration.DialogForBeelzeBub3.length - 1)
{
b_DialogIndexForBeelzeBub =(byte)(Configration.DialogForBeelzeBub3.length - 1);
is_Move = true;
if(!is_DialogedForBeelzeBub)
{
is_DialogedForBeelzeBub = true;
}
}
Message = Configration.DialogForBeelzeBub3[b_DialogIndexForBeelzeBub];
}
}
}
private void SaveGame() //保存游戏进度
{
OpenStore();
try
{
byte buffer[] = rs.getRecord(3);
rs.setRecord(1, buffer, 0, buffer.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
os.writeByte(HeroLv);
os.writeInt(HeroLp);
os.writeInt(HeroAc);
os.writeInt(HeroDc);
os.writeInt(HeroExp);
os.writeInt(HeroMoney);
os.writeByte(RedKey);
os.writeByte(YellowKey);
os.writeByte(BlueKey);
os.writeByte(b_Stage);
os.writeByte(maxStage);
os.writeByte(b_x);
os.writeByte(b_y);
os.writeLong(UsedTime);
os.writeBoolean(hasLuoPan);
os.writeBoolean(hasBaoDian);
os.writeBoolean(is_DialogedForAngle);
os.writeByte(b_DialogIndexForAngle);
os.writeBoolean(hasLatinCross);
os.writeBoolean(is_DialogedForJack);
os.writeByte(b_DialogIndexForJack);
os.writeBoolean(hasPickax);
os.writeBoolean(is_DialogedForLevelUp);
os.writeBoolean(is_DialogedForLevelUp15);
os.writeByte(b_DialogIndexForLevelUp);
os.writeBoolean(hasExp);
os.writeBoolean(is_DialogedForBuyKey);
os.writeBoolean(is_DialogedForBuyKey15);
os.writeByte(b_DialogIndexForBuyKey);
os.writeBoolean(hasMoney);
os.writeBoolean(is_DialogedForPrincess);
os.writeByte(b_DialogIndexForPrincess);
os.writeBoolean(is_DialogedForBeelzeBub);
os.writeByte(b_DialogIndexForBeelzeBub);
os.writeBoolean(BeelzeBubIsDead);
os.close();
byte data[] = baos.toByteArray();
rs.setRecord(2, data, 0, data.length);
}
catch (Exception e)
{
e.printStackTrace();
}
CloseStore();
}
private void drawAbout(Graphics g)
{
g.setClip(0, 0, i_lcdWidth, i_lcdHeight);
g.setColor(0x000000);
g.fillRect(0, 0, i_lcdWidth, i_lcdHeight);
g.setColor(0xFFFFFF);
g.drawRect(1, 1, i_lcdWidth - 3, i_lcdHeight - 3);
showAbout(g);
}
private void LoadGame() //读取游戏进度
{
OpenStore();
try
{
byte buffer[] = rs.getRecord(1);
rs.setRecord(3, buffer, 0, buffer.length);
byte data[] = rs.getRecord(2);
DataInputStream is = new DataInputStream(new ByteArrayInputStream(data));
HeroLv = is.readByte();
HeroLp = is.readInt();
HeroAc = is.readInt();
HeroDc = is.readInt();
HeroExp = is.readInt();
HeroMoney = is.readInt();
RedKey = is.readByte();
YellowKey = is.readByte();
BlueKey = is.readByte();
b_Stage = is.readByte();
maxStage = is.readByte();
b_x = is.readByte();
b_y = is.readByte();
UsedTime = is.readLong();
hasLuoPan = is.readBoolean();
hasBaoDian = is.readBoolean();
is_DialogedForAngle = is.readBoolean();
b_DialogIndexForAngle = is.readByte();
hasLatinCross = is.readBoolean();
is_DialogedForJack = is.readBoolean();
b_DialogIndexForJack = is.readByte();
hasPickax = is.readBoolean();
is_DialogedForLevelUp = is.readBoolean();
is_DialogedForLevelUp15 = is.readBoolean();
b_DialogIndexForLevelUp = is.readByte();
hasExp = is.readBoolean();
is_DialogedForBuyKey = is.readBoolean();
is_DialogedForBuyKey15 = is.readBoolean();
b_DialogIndexForBuyKey = is.readByte();
hasMoney = is.readBoolean();
is_DialogedForPrincess = is.readBoolean();
b_DialogIndexForPrincess = is.readByte();
is_DialogedForBeelzeBub = is.readBoolean();
b_DialogIndexForBeelzeBub = is.readByte();
BeelzeBubIsDead = is.readBoolean();
is.close();
}
catch (Exception e)
{
e.printStackTrace();
}
StartTime = System.currentTimeMillis() - UsedTime;
CloseStore();
}
private void initGame() //开始新游戏时初始化
{
if(map == null)
{
map = new TiledLayer(11, 11, img_Map, (byte)32, (byte)32);
}
else
{
map.setStaticTileSet(11, 11, img_Map, (byte)32, (byte)32);
}
map.VisibleWidth = i_lcdWidth;
map.VisibleHeight = i_lcdHeight;
for(byte i = 1; i < 39; i++)
{
map.createAnimatedTile(i * 2 - 1);
}
OpenStore();
try
{
byte buffer[] = ImageSet.LoadMap("/Map/Map.Lib", 2662);
rs.setRecord(3, buffer, 0, buffer.length);
}
catch (Exception e)
{
e.printStackTrace();
}
CloseStore();
b_Stage = 0;
maxStage = 0;
b_x = b_star[b_Stage * 2];
b_y = b_star[b_Stage * 2 + 1];
HeroLv = 1;
HeroLp = 1000;
HeroAc = 10;
HeroDc = 10;
HeroExp = 0;//经验值
HeroMoney = 0; //钱币
RedKey = 0;//红钥匙的数量
YellowKey = 0;//黄钥匙的数量
BlueKey = 0;
is_Move = true;
StartTime = System.currentTimeMillis();
hasLuoPan = false;
hasBaoDian = false;
is_DialogedForAngle = false;
b_DialogIndexForAngle = 0;
hasLatinCross = false;
is_DialogedForJack = false;//是否与JACK对过话;
b_DialogIndexForJack = 0;
hasPickax = false;
is_DialogedForLevelUp = false; //是否与老头NPC对话
is_DialogedForLevelUp15 = false;
b_DialogIndexForLevelUp = 0;
hasExp = false;
is_DialogedForBuyKey = false; //是否与商人NPC对话
is_DialogedForBuyKey15 = false;
b_DialogIndexForBuyKey = 0;
hasMoney = false;
is_DialogedForPrincess = false;//是否与公主对过话;
b_DialogIndexForPrincess = 0;
is_DialogedForBeelzeBub = false;//是否与魔王对过话;
b_DialogIndexForBeelzeBub = 0;
BeelzeBubIsDead = false; //是否已经杀死了魔王
}
private void SaveMap() //保存地图数据
{
OpenStore();
try
{
byte buffer[] = rs.getRecord(3);
System.arraycopy(mapArray, 0, buffer, b_Stage * mapArray.length, mapArray.length);
rs.setRecord(3, buffer, 0, buffer.length);
}
catch (Exception e)
{
e.printStackTrace();
}
CloseStore();
}
private void LoadMap() //读取地图数据
{
OpenStore();
try
{
byte buffer[] = rs.getRecord(3);
System.arraycopy(buffer, b_Stage * mapArray.length, mapArray, 0, mapArray.length);
}
catch (Exception e)
{
e.printStackTrace();
}
CloseStore();
}
private void initStage()//初使化关卡地图
{
LoadMap();
for(int i = 0; i < 121; i++)
{
map.setCell(i % 11, i / 11, mapArray[i]);
}
map.setPosition(-b_x * 32 + i_lcdCenterX - 16, -b_y * 32 + i_lcdCenterY - 15);
is_Loaded = true;
}
private void LoadImage() //图片加载
{
switch(SS_NOW)
{
case Configration.SS_LOGO:
if(img_Logo == null)
{
img_Logo = ImageSet.readImage("/img/Picture.Lib", 0);
}
break;
case Configration.SS_TITLE:
if(img_Title == null)
{
img_Title = ImageSet.readImage("/img/Picture.Lib", 31736);
}
if(img_AnyKey == null)
{
img_AnyKey = ImageSet.readImage("/img/Picture.Lib", 1680);
}
break;
case Configration.SS_MENU:
if(img_Title == null)
{
img_Title = ImageSet.readImage("/img/Picture.Lib", 31736);
}
if(img_jtl == null)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -