📄 testcanvas.java
字号:
import java.io.InputStream;
import javax.microedition.lcdui.*;
public class TestCanvas extends Canvas implements Runnable{
private int width;
private int height;
static final int ERASE_COLOUR=0x00ffffff;
private Image[] imgs;
private int drawX,drawY;
private int tilesWide,tilesHigh,tilesLength;
private int[]Map;
private int index=0;
public TestCanvas(){
width=getWidth();
height=getHeight();
tilesWide=10;
tilesHigh=10;
tilesLength=32;
Map=new int[tilesWide*tilesHigh];
imgs=new Image[13];
for(int i=1;i<imgs.length;i++){
try{
imgs[i]=Image.createImage("/"+i+".PNG");
}catch(Exception ex){}
}
try{
InputStream is=null;
is=this.getClass().getResourceAsStream("/map.TXT");
int b;
int[] data=new int[10];
int idx=0;
while((b=is.read())!=-1){
if(b==44||b==13||b==10){
for(int i=0;i<idx;i++){
Map[index]=Map[index]*10+data[i];
}
if(idx>0){
index++;
}
idx=0;
}
else{
data[idx++]=b-'0';
}
}
}catch(Exception ex){}
}
protected void paint(Graphics g) {
// TODO 自动生成方法存根
g.setColor(ERASE_COLOUR);
g.fillRect(0,0, width, height);
g.translate(drawX,drawY);
for(int j=0;j<tilesHigh;j++){
for(int i=0;i<tilesWide;i++){
if(Map[tilesWide*j+i]!=0){
g.drawImage(imgs[Map[tilesWide*j+i]], i*tilesLength, j*tilesLength, Graphics.TOP|Graphics.LEFT);
}
}
}
}
public void run() {
// TODO 自动生成方法存根
while(true){
try{
repaint();
Thread.sleep(100);
}catch(Exception ex){}
}
}
public void keyPressed(int keyCode){
switch(getGameAction(keyCode)){
case Canvas.UP:{
if(drawY+10<=0){
drawY=drawY+10;
}
else{
drawY=0;
}
}break;
case Canvas.DOWN:{
if(drawY-10>=-tilesHigh*tilesLength+height){
drawY=drawY-10;
}
else{
drawY=-tilesHigh*tilesLength+height;
}
}break;
case Canvas.LEFT:{
if(drawX+10<=0){
drawX=drawX+10;
}
else{
drawX=0;
}
}break;
case Canvas.RIGHT:{
if(drawX-10>=-tilesWide*tilesLength+width){
drawX=drawX-10;
}
else{
drawX=-tilesWide*tilesLength+width;
}
}break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -