📄 mygamecanvas.java
字号:
Image img = null ;
try
{
img = Image.createImage(pic);
}catch(Exception exp)
{
System.out.println(exp);
}
return new Sprite(img,128,128) ;
}
boolean conti = true ;
int rate = 100 ;
public void run()
{
long st = 0 ;
long et = 0 ;
Graphics g = getGraphics() ;
while(conti)
{
st = System.currentTimeMillis() ;
input() ;
collidect();
render(g) ;
et = System.currentTimeMillis() ;
if((et-st)<rate)
{
try
{
Thread.sleep(rate-(et-st));
}catch(Exception exp){}
}
}
}
int rolecellx=cellsx/2; //初始角色所处的单元格位置x
int rolecelly=cellsy/2; //初始角色所处的单元格位置y
int pMenMove=0;
int pMenStep=0;
public void input()
{
int keystate = getKeyStates() ;
if((keystate & UP_PRESSED)!=0)
{
pMenMove=3;
// pMenStep=3;
setpMenMove(2);
int i=y-8;
rolecellx= (i+32) / tiledy;
rolecelly= (x+16) / tiledx;
if (mapDepth1[rolecellx][rolecelly]==0)
{
y=i;
if(pMenMoveDir[2]==0)
{
pMen.setFrameSequence(hero3);
pMenMoveDir[2]=1;
}
pMen.move(0,-8);
pMen.nextFrame();
}
}else if((keystate & DOWN_PRESSED)!=0)
{
pMenMove=1;
// pMenStep=3;
setpMenMove(0);
int i=y+8;
rolecellx= (i+32) / tiledy;
rolecelly= (x+16) / tiledx;
if (mapDepth1[rolecellx][rolecelly]==0)
{
y=i;
if(pMenMoveDir[0]==0){
pMen.setFrameSequence(hero1);
pMenMoveDir[0]=1;
}
pMen.move(0,8);
pMen.nextFrame();
}
}else if((keystate & LEFT_PRESSED)!=0)
{
pMenMove=2;
// pMenStep=3;
setpMenMove(1);
int i=x-8;
rolecellx= (y+32) / tiledy;
rolecelly= (i+16) / tiledx;
if (mapDepth1[rolecellx][rolecelly]==0)
{
x=i;
if(pMenMoveDir[1]==0)
{
pMen.setFrameSequence(hero2);
pMenMoveDir[1]=1;
}
pMen.move(-8,0);
pMen.nextFrame();
}
}else if((keystate & RIGHT_PRESSED)!=0)
{
pMenMove=4;
// pMenStep=3;
setpMenMove(3);
int i=x+8;
rolecellx= (y+32) / tiledy;
rolecelly= (i+16) / tiledx;
if (mapDepth1[rolecellx][rolecelly]==0)
{
x=i;
if(pMenMoveDir[3]==0)
{
pMen.setFrameSequence(hero4);
pMenMoveDir[3]=1;
}
pMen.move(8,0);
pMen.nextFrame();
}
}else if((keystate & FIRE_PRESSED)!=0)
{
switch(pMenMove)
{
case 1: pMen.setFrameSequence(hero5); break;
case 2: pMen.setFrameSequence(hero6); break;
case 3: pMen.setFrameSequence(hero7); break;
case 4: pMen.setFrameSequence(hero8); break;
}
pMenStep=3;
// effect =null;
if(effectbuts==0)
{
if(effectbut==null)
{
effectbut=createEffect("/res/xyyarraw2.png");
lm.insert(effectbut,1);
System.out.println("/res/xyyarraw2.png");
effectbut.setVisible(true);
}
if(effect==null)
{
effect = createEffect("/res/xyyeffect2.png");
lm.insert(effect,1);
System.out.println("/res/xyyeffect2.png");
// lm.append(effect);
// effect.setVisible(true);
}
effectbuts=4;
if((effectbut!=null)&&(effect!=null))
{
if(effectbut.isVisible()==false)
{
effect.setPosition(c1.getX()-32,c1.getY()-24);
effectend=8;
}
}
}
// if(c1.isVisible())
// {
// c1.setVisible(false);
// }else
// {
// c1.setVisible(true);
// }
}
}
private void setpMenMove(int i) {
// TODO Auto-generated method stub
switch(i)
{
case 0:pMenMoveDir[1]=0;pMenMoveDir[2]=0;pMenMoveDir[3]=0;break;
case 1:pMenMoveDir[0]=0;pMenMoveDir[2]=0;pMenMoveDir[3]=0;break;
case 2:pMenMoveDir[0]=0;pMenMoveDir[1]=0;pMenMoveDir[3]=0;break;
case 3:pMenMoveDir[0]=0;pMenMoveDir[1]=0;pMenMoveDir[2]=0;break;
}
}
int [] pMenMoveDir={0,0,0,0};
private int effectend=0;
private int effectbuts=0;
public void render(Graphics g)
{
g.setColor(128,128,128);
g.fillRect(0,0,getWidth(),getHeight());
g.drawString("test",pMen.getX(),pMen.getY(), 0);
lm.setViewWindow(x-nWidth/2,y-nHeight/2,nWidth,nHeight);
// lm.setViewWindow(pMen.getX()-nWidth/2,pMen.getY()-nHeight/2,nWidth,nHeight);
c1.nextFrame();
if(pMenStep>0)
{
pMen.nextFrame(); // fire Ani
pMenStep--;
}
if(effectbuts>0)
{
if(effectbut!=null)
{
effectbut.setPosition(c1.getX()+64/effectbuts,c1.getY()+64/effectbuts);
effectbut.setVisible(true);
effectbuts=effectbuts-1;
}
}
else
{
if(effectbut!=null)
effectbut.setVisible(false);
}
//show effect;
if(effectend>0)
{
effect.nextFrame();
effectend=effectend-1;
System.out.println("fire:/res/xyyeffect2.png");
}else
{
// effect.setVisible(false);
if(effect!=null)
lm.remove(effect);
effect=null;
}
lm.paint(g,0,0);
g.setColor(0,0,0);
g.drawString("testbody",10,getHeight()-20,(Graphics.TOP|Graphics.LEFT));
g.drawRect(0,0,getWidth(),getHeight());
flushGraphics() ;
}
boolean coll=false;
public boolean collidect()
{
// if(c1.collidesWith(pMen,false))
// {
// if(coll==false){
// Image good = null ;
// try
// {
// good = Image.createImage("/res/boss.png") ;
// }catch(Exception exp){}
// c1.setImage(good,tiledx,tiledy);
// coll=true;
// System.out.println();
// }
// return true;
// }
// if (coll==true) {
// Image good = null ;
// try
// {
// good = Image.createImage("/res/boss.png") ;
// }catch(Exception exp){}
// c1.setImage(good,tiledx,tiledy);
// coll=false;
// }
return false ;
}
public void start()
{
Thread t = new Thread(this) ;
t.start();
}
public void exit()
{
conti = false ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -