📄 pcanvas.java
字号:
}else{
server.send("-2");
}
}else if(isServer==2){
if(data.equals(Integer.toString(-2))){
loadimage();
G_STATE = G_START;
client.send("-3");
}else{
client.send("-2");
}
}else{
loadimage();
G_STATE = G_START;
}
//#else
// loadimage();
// G_STATE = G_START;
//#endif
}
break;
case LEFT:
case KEY_NUM4:
count--;
if(count<0)
count=1;
break;
case RIGHT:
case KEY_NUM6:
count++;
if(count>1)
count=0;
break;
case SOFTKEY2:
if (islist()) {
myname = new StringBuffer();
G_STATE = G_END;
count = 12;
loadcount = 0;
}else{
count=0;
loadcount=0;
init();//初始化顺序
G_STATE=G_MENU;
}
break;
case SOFTKEY1:
//#ifdef _BT
if(isServer==1){
if(data.equals(Integer.toString(-2))){
loadimage();
G_STATE = G_START;
server.send("-3");
}else{
server.send("-2");
}
}else if(isServer==2){
if(data.equals(Integer.toString(-2))){
loadimage();
G_STATE = G_START;
client.send("-3");
}else{
client.send("-2");
}
}else{
loadimage();
G_STATE = G_START;
}
//#else
// loadimage();
// G_STATE = G_START;
//#endif
break;
}
break;
case G_END:
switch (keyCode) {
case FIRE:
case KEY_NUM5:
if (myname.length() <= 10) {
myname.append(text[count]);
}
break;
case LEFT:
case KEY_NUM4:
count--;
if (count <= 0) {
count = 0;
}
break;
case RIGHT:
case KEY_NUM6:
count++;
if (count >= 25) {
count = 25;
}
break;
case SOFTKEY2:
if(myname.length()>0){
myname.deleteCharAt(myname.length()-1);
}else{
count=0;
loadcount=0;
init();//初始化顺序
myname=null;
G_STATE=G_MENU;
}
break;
case SOFTKEY1:
name[no] = myname.toString();
saverms();
init();//初始化顺序
myname=null;
G_STATE = G_TOP;
break;
}
break;
case G_OVER:
if(keyCode==SOFTKEY1){
if(count<(HEIGHT*7/16+100)){
count=(HEIGHT*7/16+100);
}else{
if (islist()) {
myname = new StringBuffer();
count = 12;
loadcount = 0;
G_STATE = G_END;
} else{
count=0;
loadcount=0;
init();//初始化顺序
G_STATE=G_MENU;
}
}
}
break;
case G_LOST:
if(keyCode==SOFTKEY1){
if (islist()) {
myname = new StringBuffer();
count = 12;
loadcount = 0;
G_STATE = G_END;
} else{
count=0;
loadcount=0;
init();//初始化顺序
G_STATE=G_MENU;
}
}
break;
case G_PAUSE:
switch (keyCode) {
case UP:
case KEY_NUM2:
count--;
if (count < 0)
count = 5;
loadcount=0;
break;
case DOWN:
case KEY_NUM8:
count++;
if (count > 5)
count = 0;
loadcount=0;
break;
case FIRE:
case SOFTKEY1:
case KEY_NUM5:
switch(count){
case 0:
//#ifdef _BT
if(data.equals(Integer.toString(-5))||isServer==0){
if(isServer==1){
server.send("-6");
}else if(isServer==2){
client.send("-6");
}
ispause=false;
count=0;
G_STATE=G_PLAY;
}else{
if(isServer==1){
server.send("-5");
}else if(isServer==2){
client.send("-5");
}
}
//#else
// ispause=false;
// count=0;
// G_STATE=G_PLAY;
//#endif
break;
case 1:
count=0;
G_STATE=G_HELP;
break;
case 2:
G_STATE=G_SET;
break;
case 3:
G_STATE=G_TOP;
break;
case 4:
G_STATE=G_ABOUT;
break;
case 5:
if (islist()) {
myname = new StringBuffer();
count = 12;
loadcount = 0;
ispause=false;
//#ifdef _BT
if(isServer==1){
server=null;
isServer=0;
}else if(isServer==2){
client=null;
isServer=0;
}
//#endif
G_STATE = G_END;
}else{
count=0;
loadcount=0;
ispause=false;
init();//初始化顺序
G_STATE=G_MENU;
}
break;
}
break;
case SOFTKEY2:
//#ifdef _BT
if(data.equals(Integer.toString(-5))||isServer==0){
if(isServer==1){
server.send("-6");
}else if(isServer==2){
client.send("-6");
}
ispause=false;
count=0;
G_STATE=G_PLAY;
}else{
if(isServer==1){
server.send("-5");
}else if(isServer==2){
client.send("-5");
}
}
//#else
// ispause=false;
// count=0;
// G_STATE=G_PLAY;
//#endif
break;
}
break;
}
}
//60机型
private boolean isp=true;
// -------------------------------------来电中断处理--------------------------------
protected void hideNotify() {
isp=false;
stopsound();
pausegame();
}
protected void showNotify() {
}
// -------------------------------------暂停--------------------------------
private void pausegame(){
if(G_STATE==G_PLAY){
//#ifdef _BT
if(isServer==1){
server.send("-4");
}else if(isServer==2){
client.send("-4");
}
//#endif
ispause=true;
count=0;
loadcount=0;
G_STATE=G_PAUSE;
}
}
// -------------------------------------RMS存储--------------------------------
private void saverms() {
byte buffer[]=new byte[1];
buffer[0]=(byte)(soundon?1:-1);
try {
RecordStore.deleteRecordStore("ping_db");
} catch (Exception e) {
e.printStackTrace();
}
RecordStore rsdata = null;
try {
rsdata = RecordStore.openRecordStore("ping_db", true);
rsdata.addRecord(buffer,0,buffer.length);
for (int i = 0; i < 3; i++) {
if (name[i] != null) {
byte[] data = parsedata(name[i], score[i]);
rsdata.addRecord(data, 0, data.length);
}
}
} catch (RecordStoreException e) {
e.printStackTrace();
} finally {
try {
rsdata.closeRecordStore();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private byte[] parsedata(String name, long score) {
StringBuffer temp = new StringBuffer();
temp.append(name);
temp.append(',');
temp.append(Long.toString(score));
byte[] data = temp.toString().getBytes();
return data;
}
private void loadrms() {
RecordStore rsdata = null;
try {
byte buffer[]=new byte[1];
byte data[];
rsdata = RecordStore.openRecordStore("ping_db", true);
System.out.println(rsdata.getNumRecords());
buffer=rsdata.getRecord(1);
soundon=buffer[0]>0?true:false;
System.out.println(""+soundon);
for (int i = 0; i < 3; i++) {
data = rsdata.getRecord(i + 2);
String temp = new String(data);
for (int n = 0; n < temp.length(); n++) {
if (temp.charAt(n) == ',') {
name[i] = temp.substring(0, n);
System.out.println(name[i]);
score[i] = Long.parseLong(temp.substring(n + 1));
System.out.println("" + score[i]);
}
}
}
} catch (Exception e) {
} finally {
try {
System.out.println("ok");
rsdata.closeRecordStore();
} catch (Exception e) {
}
}
}
// ------------------------------判断是否上高分榜------------------------------------------------------------
private boolean islist() {
for (int i = 0; i < 3; i++) {
if (score[3] >= score[i]) {
for(int n=1;n>=i;n--){
score[n+1]=score[n];
name[n+1]=name[n];
}
score[i] = score[3];
no = i;
return true;
}
}
return false;
}
// --------------------------------------计算分数-----------------------------------------------------------
private void comscore() {
index[0]=(int)score[3]/100000;
index[1]=(int)(score[3]%100000)/10000;
index[2]=(int)(score[3]%10000)/1000;
index[3]=(int)(score[3]%1000)/100;
index[4]=(int)(score[3]%100)/10;
index[5]=(int)score[3]%10;
}
// --------------------------------------进入TYPE-----------------------------------------------------------
private void gotype(){
view=false;
typeindex=new byte[5];
for(int i=0;i<5;i++){
typeindex[i]=(typenum[order[stage]]+i)<=9?(byte)Math.abs(typenum[order[stage]]+i):(byte)Math.abs(typenum[order[stage]]+i-10);
}
correct=Math.abs(rd.nextInt()%5);
byte temp=typeindex[0];
typeindex[0]=typeindex[correct];
typeindex[correct]=temp;
}
// --------------------------------------UI-----------------------------------------------------------
private void mainui(Graphics g,String name){
g.drawImage(menu,WIDTH/2,HEIGHT/2,Graphics.HCENTER|Graphics.VCENTER);
g.setColor(0xFEDC00);
g.fillRect(WIDTH/2-10,HEIGHT/2-75,82,169);
g.setColor(0x000000);
g.fillRect(0,0,WIDTH,HEIGHT/8);
g.fillRect(0,HEIGHT-20,WIDTH,20+1);
g.setColor(0xffffff);
g.drawLine(0,HEIGHT/8,WIDTH,HEIGHT/8);
g.drawLine(0,HEIGHT-20,WIDTH,HEIGHT-20);
g.drawImage(ui,5,HEIGHT/8-2,Graphics.LEFT|Graphics.BOTTOM);//画LOGO
g.drawString(name,WIDTH/2,HEIGHT/8-1,Graphics.HCENTER|Graphics.BOTTOM);
}
// --------------------------------------构造字母-----------------------------------------------------------
private void font(Graphics g) {
for (int i = 0; i < 12; i++) {
if(i==6){
g.setClip(WIDTH / 2 - 90 + i * 15, HEIGHT * 2 / 3 - 8,9,10);
g.drawImage(font, WIDTH / 2 - count * 9 , HEIGHT * 2 / 3 - 8,Graphics.LEFT | Graphics.TOP);
}else{
g.setClip(WIDTH / 2 - 90 + i * 15, HEIGHT * 2 / 3,9,10);
g.drawImage(font, WIDTH / 2 - 90 + i * 15- (count+i-6 )* 9 , HEIGHT * 2 / 3,Graphics.LEFT | Graphics.TOP);
}
}
g.setClip(0, 0,WIDTH,HEIGHT);
g.drawImage(posts,WIDTH / 2-2, HEIGHT * 2 / 3 + 8,Graphics.LEFT|Graphics.TOP);
}
// --------------------------------------画BUTTON-----------------------------------------------------------
private void pcommand(Graphics g, String left, String right) {
g.setColor(0xFFFFFF);
if (!left.equals("")) {
g.drawString(left, 0, HEIGHT, Graphics.LEFT | Graphics.BOTTOM);
}
if (!right.equals("")) {
g
.drawString(right, WIDTH, HEIGHT, Graphics.RIGHT
| Graphics.BOTTOM);
}
}
private byte soundindex=-1;
private void playsound(int index,boolean circu){
if(!soundon){
return;
}
stopsound();
try{
InputStream is=getClass().getResourceAsStream("/sound"+index+".mid");
sound=Manager.createPlayer(is,"audio/midi");
if(circu){
sound.setLoopCount(-1);
}else{
sound.setLoopCount(1);
}
if(sound.getMediaTime()>0){
sound.setMediaTime(0);
}
sound.start();
soundindex=(byte)index;
is.close();
is=null;
}catch(Exception e){e.printStackTrace();}
}
private void stopsound(){
if(soundindex==-1){
return;
}
try{
sound.stop();
sound.close();
sound=null;
soundindex=-1;
}catch(Exception e){e.printStackTrace();}
}
//#ifdef _BT
public void change() {
// TODO 自动生成方法存根
level=4;
loadimage();
G_STATE=G_START;
}
public void read(byte[] temp){
data=(new String(temp)).trim();
if(data.equals(Integer.toString(-1))){
pick=true;
G_STATE=G_START;
}else if(data.equals(Integer.toString(-3))){
loadimage();
G_STATE = G_START;
}else if(data.equals(Integer.toString(-4))){
pausegame();
}else if(data.equals(Integer.toString(-6))){
ispause=false;
count=0;
G_STATE=G_PLAY;
}
}
//#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -