?? sfcanvas.java
字號(hào):
import java.io.*;
import java.util.Random;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreNotFoundException;
public class SFCanvas extends GameCanvas
implements Runnable
{
private final int LISTENER_LEFT = 4;
private final int LISTENER_RIGHT = 32;
private final int LISTENER_UP = 2;
private final int LISTENER_DOWN = 64;
private int setX;
private int setY;
private int heroWidth;
private int heroHeight;
private int mapdir;
private int itempage;
private int itemchoice;
static int keyState;
static int nowShopcho = 0;
static int buynum = 0;
private boolean isCho1;
private boolean isData1;
private boolean isData2;
private boolean isOpenItem;
private boolean isGetpress;
private boolean isDelpress;
private boolean isDelok;
private boolean isChkdel;
private boolean isOpenshop;
private boolean isOpenintro;
private boolean isFirst;
private boolean isOut;
private boolean isBreak;
private boolean isOpenmisn;
private Random randdead;
String dataname;
private int menuselc;
private int menudisp;
private Graphics g;
private byte heroData[];
private int itemprice[] = {
30, 100, 500, 1000, 3000
};
public RecordStore rs;
public int myid;
public int itemcho;
public static Image hImage;
public static Image mapImage;
public static Image monsterImage;
public static Image bfImage;
public static Image bloodImage;
public static Image hpImage;
public static Image hplImage;
public static Image loadImage;
public static Image loadImage2;
public static Image itemImage;
public static Image goldImage;
public static Image gearImage;
public static Image houseImagetop;
public static Image houseImagebottom;
public static Image npcImage;
public static Image npcImage1;
public static Image shopImage;
public static Image menuImage;
public static Image barImage;
public static Image bgImage;
public static Image missionImage;
private int jqcount;
private int marktime;
final int GAME_MENU = -1;
final int GAME_TITLE = 0;
final int GAME_ING = 1;
final int GAME_JQ = 2;
final int GAME_OVER = 3;
public int herolv;
public int heroitem;
public int herogold;
public int heroitemlv;
public int heroexp;
public static String heroMyItem;
public static String DataName = null;
public char tempitem;
public Thread thread;
int DEFAULT_HP;
int DEFAULT_LV;
int GAME_STATE;
HeroSprite heroSprite;
MapTiled mapTiled;
MonsterSprite monsterSprite;
MonsterSprite monsterSprite1;
MonsterSprite monsterSprite2;
MonsterSprite monsterSprite3;
MonsterSprite monsterSprite4;
MonsterSprite monsterSprite5;
MonsterSprite monsterSprite6;
MonsterSprite monsterSprite7;
MonsterSprite monsterSprite8;
MonsterSprite monsterSprite9;
MonsterSprite monsterSprite10;
NPCSprite npcSprite;
NPCSprite npcSprite1;
LayerManager layManager;
ASprite tempMonster;
public void doHeroInit()
{
heroSprite.lv = 1;
heroSprite.itemlv = 0;
heroSprite.gold = 0;
heroSprite.MyItem = "000000000000";
heroSprite.exp = 210;
}
public void gotoMap(int i)
{
if (i == 0)
{
monsterSprite = null;
monsterSprite1 = null;
monsterSprite2 = null;
monsterSprite3 = null;
monsterSprite4 = null;
monsterSprite5 = null;
monsterSprite6 = null;
monsterSprite7 = null;
monsterSprite8 = null;
monsterSprite9 = null;
monsterSprite10 = null;
monsterImage = null;
layManager.remove(mapTiled);
mapImage = null;
mapTiled = null;
heroSprite.isWalkable = (boolean[][])null;
try
{
mapImage = Image.createImage("/map2.png");
houseImagetop = Image.createImage("/house_01.png");
houseImagebottom = Image.createImage("/house_02.png");
shopImage = Image.createImage("/shop.png");
npcImage = Image.createImage("/npc.png");
npcImage1 = Image.createImage("/npc1.png");
}
catch (Exception exception) { }
mapTiled = new MapTiled(30, 30, mapImage, 16, 16, getWidth(), getHeight());
mapTiled.drawMap(i, setX, setY);
heroSprite.chgMapbool(mapTiled.isWalkable0);
layManager.append(mapTiled);
npcSprite = new NPCSprite(npcImage1, 25, 32, 1, 86, 161);
npcSprite1 = new NPCSprite(npcImage, 15, 35, 2, 328, 288);
heroSprite.mapdir = 0;
} else
{
layManager.remove(mapTiled);
mapImage = null;
mapTiled = null;
houseImagetop = null;
houseImagebottom = null;
heroSprite.isWalkable = (boolean[][])null;
npcSprite = null;
npcSprite1 = null;
shopImage = null;
try
{
mapImage = Image.createImage("/title.png");
monsterImage = Image.createImage("/monster.png");
}
catch (Exception exception1) { }
mapTiled = new MapTiled(40, 40, mapImage, 16, 16, getWidth(), getHeight());
mapTiled.drawMap(i, setX, setY);
heroSprite.chgMapbool(mapTiled.isWalkable);
layManager.append(mapTiled);
monsterSprite = new MonsterSprite(monsterImage, 50, 50, 90, 90, false, 2);
monsterSprite1 = new MonsterSprite(monsterImage, 50, 50, 140, 140, false, 1);
monsterSprite2 = new MonsterSprite(monsterImage, 50, 50, 120, 120, false, 3);
monsterSprite3 = new MonsterSprite(monsterImage, 50, 50, 300, 110, false, 5);
monsterSprite4 = new MonsterSprite(monsterImage, 50, 50, 300, 160, false, 4);
monsterSprite5 = new MonsterSprite(monsterImage, 50, 50, 300, 200, false, 5);
monsterSprite6 = new MonsterSprite(monsterImage, 50, 50, 400, 50, false, 7);
monsterSprite7 = new MonsterSprite(monsterImage, 50, 50, 400, 110, false, 7);
monsterSprite8 = new MonsterSprite(monsterImage, 50, 50, 400, 500, false, 8);
monsterSprite9 = new MonsterSprite(monsterImage, 50, 50, 460, 500, false, 9);
monsterSprite10 = new MonsterSprite(monsterImage, 50, 50, 420, 550, false, 12);
heroSprite.mapdir = 1;
}
}
public SFCanvas()
{
super(true);
setX = (180 - getWidth() / 2) + 20;
setY = (180 - getHeight() / 2) + 20;
mapdir = 0;
itempage = 1;
itemchoice = 1;
isCho1 = true;
isData1 = false;
isData2 = false;
isOpenItem = false;
isDelpress = false;
isDelok = false;
isChkdel = false;
isOpenshop = false;
isOpenintro = false;
isFirst = false;
isOut = false;
isBreak = false;
isOpenmisn = false;
randdead = new Random();
dataname = "crazy4";
menuselc = 1;
menudisp = 0;
myid = -1;
itemcho = 1;
jqcount = 0;
marktime = 0;
herolv = -1;
heroitem = -1;
herogold = -1;
heroitemlv = -1;
heroexp = -1;
DEFAULT_HP = 100;
DEFAULT_LV = 1;
GAME_STATE = -1;
System.out.print("構(gòu)造函數(shù)開(kāi)始運(yùn)行");
try
{
hImage = Image.createImage("/mainch.png");
mapImage = Image.createImage("/map2.png");
houseImagetop = Image.createImage("/house_01.png");
houseImagebottom = Image.createImage("/house_02.png");
npcImage = Image.createImage("/npc.png");
npcImage1 = Image.createImage("/npc1.png");
bloodImage = Image.createImage("/blood.png");
hpImage = Image.createImage("/blood.png");
hplImage = Image.createImage("/bloodti.png");
loadImage = Image.createImage("/load1.png");
loadImage2 = Image.createImage("/load2.png");
itemImage = Image.createImage("/box.png");
goldImage = Image.createImage("/gold.png");
gearImage = Image.createImage("/item.png");
shopImage = Image.createImage("/shop.png");
menuImage = Image.createImage("/menu.png");
barImage = Image.createImage("/bar.png");
bgImage = Image.createImage("/1212.png");
missionImage = Image.createImage("/menumain.png");
}
catch (Exception exception) { }
mapTiled = new MapTiled(30, 30, mapImage, 16, 16, getWidth(), getHeight());
heroSprite = new HeroSprite(hImage, 40, 40);
heroWidth = heroSprite.getWidth() / 2;
heroHeight = heroSprite.getHeight() / 2;
heroSprite.chgMapbool(mapTiled.isWalkable0);
npcSprite = new NPCSprite(npcImage1, 25, 32, 1, 86, 161);
npcSprite1 = new NPCSprite(npcImage, 15, 35, 2, 328, 288);
heroSprite.isAlive = true;
mapTiled.drawMap(0, setX, setY);
g = getGraphics();
layManager = new LayerManager();
layManager.append(mapTiled);
thread = new Thread(this);
System.out.print("構(gòu)造函數(shù)運(yùn)行完畢");
thread.start();
}
private void doMonster(MonsterSprite monstersprite, HeroSprite herosprite, RecordStore recordstore, int i)
{
herosprite.doMonster(monstersprite.doMovedraw(herosprite.x + heroWidth, herosprite.y + heroHeight, getHeight(), getWidth(), herosprite.dir, herosprite.iisBattle, herosprite, herosprite.hp, herosprite.lv, herosprite.itemlv), monstersprite.deadlv, recordstore, i);
}
private void monsterBlood(MonsterSprite monstersprite)
{
if (monstersprite.isAlive)
{
g.setColor(0x8a56e8);
g.drawRoundRect(monstersprite.x - setX - 10, monstersprite.y - setY - 15, 20, 5, 3, 3);
g.setColor(0xff030f);
g.fillRoundRect(monstersprite.x - setX - 10, monstersprite.y - setY - 15, (20 * monstersprite.hp) / monstersprite.maxHp, 5, 3, 3);
g.setColor(0);
g.drawString(monstersprite.lv + "等級(jí)", monstersprite.x - setX - 10, monstersprite.y - setY - 15, 36);
} else
if (!monstersprite.isGet)
{
if (monstersprite.goldOritem == 0)
{
g.drawImage(itemImage, monstersprite.x - setX - 10, monstersprite.y - setY, 36);
} else
{
g.drawString(String.valueOf(monstersprite.goldforhero), monstersprite.x - setX, monstersprite.y - setY - 15, 36);
g.drawImage(goldImage, monstersprite.x - setX - 10, monstersprite.y - setY - 5, 36);
}
if (isGetpress)
{
isGetpress = false;
if (monstersprite.heroDis < 22500)
if (monstersprite.goldOritem == 0)
{
monstersprite.redOritem = Math.abs(randdead.nextInt() % 5);
if (monstersprite.redOritem == 1)
{
if (monstersprite.lv >= 1 && monstersprite.lv <= 3)
monstersprite.itemc = '1';
else
if (monstersprite.lv >= 4 && monstersprite.lv <= 7)
monstersprite.itemc = '2';
else
if (monstersprite.lv >= 8 && monstersprite.lv <= 9)
monstersprite.itemc = '3';
else
if ((monstersprite.lv >= 10) & (monstersprite.lv <= 12))
monstersprite.itemc = '4';
} else
{
monstersprite.itemc = '5';
}
int i = 0;
do
{
if (i >= 12)
break;
if (i == 11 && heroSprite.itemcode[i] != '0')
g.drawImage(itemImage, monstersprite.x - setX - 10, monstersprite.y - setY, 36);
if (heroSprite.itemcode[i] == '0')
{
heroSprite.itemcode[i] = monstersprite.itemc;
try
{
rs.setRecord(myid, heroSprite.chgTorms(false), 0, heroSprite.chgTorms(false).length);
monstersprite.isGet = true;
}
catch (Exception exception1)
{
System.out.println(exception1);
}
break;
}
i++;
} while (true);
} else
{
heroSprite.gold = heroSprite.gold + monstersprite.goldforhero;
try
{
rs.setRecord(myid, heroSprite.chgTorms(false), 0, heroSprite.chgTorms(false).length);
monstersprite.isGet = true;
}
catch (Exception exception)
{
System.out.println(exception);
}
}
}
}
}
private void drawItem(char ac[], int i)
{
g.fillRect(135, 103 + ((i - 1) * 55) / 4, 5, 5);
if (keyState == 2 && itemcho > 1)
itemcho--;
if (keyState == 64 && itemcho < 3)
itemcho++;
if (isDelpress)
if (ac[(itemcho - 1) + (i - 1) * 3] != '0')
{
g.setColor(0xea0053);
g.fillRoundRect(40, 40, 100, 50, 5, 5);
g.setColor(0xffffff);
g.drawString("是否要真的丟棄?", 50, 50, 20);
if (isChkdel)
{
g.setColor(0);
g.drawString("是", 50, 65, 20);
g.setColor(0xffffff);
g.drawString("否", 100, 65, 20);
} else
{
g.setColor(0xffffff);
g.drawString("是", 50, 65, 20);
g.setColor(0);
g.drawString("否", 100, 65, 20);
}
g.setColor(0xffffff);
} else
{
isDelpress = false;
}
if (keyState == 256)
{
if (!isDelpress)
{
if (ac[(itemcho - 1) + (i - 1) * 3] != '5' && ac[(itemcho - 1) + (i - 1) * 3] != '0')
{
if (heroSprite.itemlv != 0)
switch (heroSprite.itemlv)
{
case 1: // '\001'
tempitem = '1';
break;
case 2: // '\002'
tempitem = '2';
break;
case 3: // '\003'
tempitem = '3';
break;
case 4: // '\004'
tempitem = '4';
break;
}
else
tempitem = '0';
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -