package com.xmobileapp.Shenjian;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.media.MediaPlayer;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
public class GameCanvas extends View implements DataStruct,Runnable{
private GameMIDlet gameMIDlet;
Thread thread,game2Thread;
private Bitmap menuBack=null;
private Bitmap menuIamge=null;
private Bitmap jianImage=null;
private Bitmap[] player=null;
private Bitmap Npc01[]=null,Npc02[]=null,game3Bitmap[]=null;
private Bitmap image=null;
private Bitmap imagePlayer=null;
private int imap[]=imap1;
private Bitmap bmap[]=new Bitmap[imap.length];
Context _context;
Canvas canvas;
Paint pa;
public static int iGameMode,iMode;
private int menuIndex,jinduMenuIndex;
private boolean duquJindu,menuKeyPress,duqujinduKeyPress;
public static boolean beginGame;
private int SpriteX,SpriteY,Sprite_index;
private long frameElapse, frameTick;
public boolean gameBegin,_isup,_isdown, _isleft, _isright, iscenter;
private boolean game1First,game2First;
private int game1TempX,game1TempY,game2TempX,game2TempY,game3TempX,game3TempY,game4TempX,game4TempY;
private int tempX=0,tempY=0,tempPoint=0;
private int money=0,tempMoney=0;
private int gameState=0,sn1=0,sn2=0,sn3=0,sn4=0,sn=0;
private int second=0,second1=0,second2=0,second3=0;
private boolean Npc01Value,talkValue,talk1Value;
private int tempInt1=0,tempInt2=0,tempInt3=0,tempSecond;
private String s1=new String(),s2=new String(),s3=new String(),s4=new String();
private final int slength=Text1.length+Text2.length+Text3.length+Text4.length;
private MediaPlayer mPlayer = null;
public GameCanvas(Context context) {
super(context);
// TODO Auto-generated constructor stub
_context=context;
pa=new Paint();
canvas=new Canvas();
InitData();
thread=new Thread(this);
thread.start();
play();
}
public void InitData(){
gameState=iMODE_GAME0;
menuIndex=0;
jinduMenuIndex=0;
iGameMode=iMODE_MENU;
//iMode用于记录读取进度之前的游戏状态,初始状态为iMODE_MENU
iMode=iMODE_MENU;
duquJindu=false;
menuKeyPress=false;
duqujinduKeyPress=false;
menuBack=LoadingImage( R.drawable.back);
}
private Bitmap LoadingImage(int imageId) {
// TODO Auto-generated method stub
return Tools.getImage(_context,imageId);
}
private void drawMap(Canvas g){
int numIndex=0;
int index=0;
for(int i=0;i<H/32;i++){
for(int j=0;j<W/32;j++){
index=imap[numIndex++]-1;
g.drawBitmap(bmap[index], j*32, i*32, pa);
}
}
}
private void Game() {
// TODO Auto-generated method stub
switch(gameState){
case iMODE_GAME0:
gameMain();
break;
case iMODE_GAME1:
if(game1First){
SpriteX=128;
SpriteY=64;
Sprite_index=0;
imap=imap1;
imap[35]=22;imap[36]=22;imap[38]=22;imap[39]=22;
//gameBegin=false;
gameBegin=false;
talkValue=true;
talk1Value=false;
game2First=true;
image=LoadingImage(R.drawable.map1);
bmap=Tools.setMapFrame(image,image.getWidth()/32,1,32,32);
}else{
imap=imap1;
SpriteX=game1TempX;
SpriteY=game1TempY;
gameBegin=true;
image=LoadingImage(R.drawable.map1);
bmap=Tools.setMapFrame(image,image.getWidth()/32,1,32,32);
}
break;
//第二关:场景
case iMODE_GAME2:
if(game2First){
SpriteX=288;
SpriteY=64;
Sprite_index=0;
Npc01Value=true;
imap=imap2;
imap[21]=2;imap[32]=2;imap[74]=2;imap[105]=2;
image=LoadingImage(R.drawable.map5);
bmap=new Bitmap[imap.length];
Bitmap[] bmp=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
Npc01=Tools.setMapFrame(LoadingImage(R.drawable.npc01), 2, 4, 32, 32);
Npc02=Tools.setMapFrame(LoadingImage(R.drawable.npc02), 2, 4, 32, 32);
int n=0;
for(int i=0;i<bmp.length;i++){
bmap[n++]=bmp[i];
}
for(int i=0;i<Npc01.length;i++){
bmap[n++]=Npc01[i];
}
for(int i=0;i<Npc02.length;i++){
bmap[n++]=Npc02[i];
}
//Log.v("n=", String.valueOf(n));
//Log.v("bmap.length=", String.valueOf(bmap.length));
break;
}else{
SpriteX=game2TempX;
SpriteY=game2TempY;
imap=imap2;
image=LoadingImage(R.drawable.map5);
bmap=new Bitmap[imap.length];
Bitmap[] bmp=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
Npc01=Tools.setMapFrame(LoadingImage(R.drawable.npc01), 2, 4, 32, 32);
Npc02=Tools.setMapFrame(LoadingImage(R.drawable.npc02), 2, 4, 32, 32);
int n=0;
for(int i=0;i<bmp.length;i++){
bmap[n++]=bmp[i];
}
for(int i=0;i<Npc01.length;i++){
bmap[n++]=Npc01[i];
}
for(int i=0;i<Npc02.length;i++){
bmap[n++]=Npc02[i];
}
break;
}
//第二关:兵器店
case iMODE_GAME3:
SpriteX=224;
SpriteY=288;
Sprite_index=9;
Npc01Value=true;
imap=imap3;
//talkValue=true;
//talk1Value=false;
image=LoadingImage(R.drawable.map1);
bmap=new Bitmap[imap.length];
Bitmap[] bmp=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
image=LoadingImage(R.drawable.map4);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
int n=0;
for(int i=0;i<bmp.length;i++){
bmap[n++]=bmp[i];
}
bmap[n++]=game3Bitmap[13];
bmap[n++]=game3Bitmap[14];
image=LoadingImage(R.drawable.game2);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
for(int i=0;i<game3Bitmap.length;i++){
bmap[n++]=game3Bitmap[i];
}
break;
//第二关:当铺
case iMODE_GAME4:
SpriteX=224;
SpriteY=288;
Sprite_index=9;
Npc01Value=true;
imap=imap4;
//talkValue=true;
//talk1Value=false;
image=LoadingImage(R.drawable.map1);
bmap=new Bitmap[imap.length];
Bitmap[] bmp4=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
image=LoadingImage(R.drawable.map4);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
int n4=0;
for(int i=0;i<bmp4.length;i++){
bmap[n4++]=bmp4[i];
}
bmap[n4++]=game3Bitmap[19];
bmap[n4++]=game3Bitmap[20];
image=LoadingImage(R.drawable.game2);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
for(int i=0;i<game3Bitmap.length;i++){
bmap[n4++]=game3Bitmap[i];
}
break;
//第二关:酒
case iMODE_GAME5:
SpriteX=224;
SpriteY=288;
Sprite_index=9;
Npc01Value=true;
imap=imap5;
//talkValue=true;
//talk1Value=false;
image=LoadingImage(R.drawable.map1);
bmap=new Bitmap[imap.length];
Bitmap[] bmp5=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
image=LoadingImage(R.drawable.map4);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
int n5=0;
for(int i=0;i<bmp5.length;i++){
bmap[n5++]=bmp5[i];
}
bmap[n5++]=game3Bitmap[15];
bmap[n5++]=game3Bitmap[16];
image=LoadingImage(R.drawable.game2);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
for(int i=0;i<game3Bitmap.length;i++){
bmap[n5++]=game3Bitmap[i];
}
break;
//第二关:药店
case iMODE_GAME6:
SpriteX=224;
SpriteY=288;
Sprite_index=9;
Npc01Value=true;
imap=imap6;
//talkValue=true;
//talk1Value=false;
image=LoadingImage(R.drawable.map1);
bmap=new Bitmap[imap.length];
Bitmap[] bmp6=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/32,32,32);
image=LoadingImage(R.drawable.map4);
game3Bitmap=Tools.setMapFrame(image,image.getWidth()/32,image.getHeight()/3
- 1
- 2
- 3
前往页