mycanvas.java
来自「基于JAVA的手机程序入门」· Java 代码 · 共 115 行
JAVA
115 行
package lyp.game;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
class gameCanvas extends Canvas implements Runnable
{
private Image copy;
static int screnWidth,screnHight,top,currentHight;
public static int brickLen;
public static map mymap;
public static Graphics graphics;
public Thread thread;
static block myblock;
gameCanvas()
{
thread=new Thread(this);
thread.start();
screnWidth=this.getWidth();
screnHight=this.getHeight();
while(screnWidth%16!=0)
{
screnWidth--;
}
brickLen=screnWidth/16;
copy=Image.createImage(screnWidth,screnHight);
graphics=copy.getGraphics();
top=screnHight-screnWidth;
mymap=new map(brickLen);
mymap.drawMap(graphics);
myblock=new block();
}
protected void paint(Graphics g)
{
g.drawImage(copy,0,0,Graphics.TOP|Graphics.LEFT);
}
public static void clear()
{
graphics.setColor(0,0,255);
graphics.fillRect(0,0,screnWidth,screnHight);
}
public void run()
{
while(true)
{
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
protected void keyPressed(int keyCode)
{
if(keyCode==Canvas.KEY_NUM4)
{
if(!myblock.isleft(mymap))
{
myblock.left();
myblock.paint(graphics);
}
}
else if(keyCode==Canvas.KEY_NUM6)
{
if(!myblock.isright(mymap))
{
myblock.right();
myblock.paint(graphics);
}
}
else if(keyCode==Canvas.KEY_NUM8)
{
while(!myblock.isdown(mymap))
{
myblock.down();
myblock.paint(graphics);
}
myblock.setmap(mymap,graphics);
if(block.over==false)
{
myblock.getthisblock();
}
}
else if(keyCode==Canvas.KEY_NUM5)
{
if(!myblock.isrot(mymap))
{
myblock.rot();
myblock.paintrot(graphics);
}
}
}
}
class gameover extends Canvas
{
protected void paint(Graphics g) {
g.drawString("gameover",this.getWidth()/2,this.getHeight()/2,
Graphics.HCENTER|Graphics.BOTTOM);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?