📄 mycanvas.java
字号:
import javax.microedition.lcdui.*;
public class MyCanvas extends Canvas implements Runnable
{
Image playerImage;
Image bufferImage;
int playerX, playerY;
public MyCanvas()
{
bufferImage = Image.createImage(176, 208);
try
{
playerImage = Image.createImage("/c.png");
}
catch(java.io.IOException ioe)
{
System.out.println("Can not open Image file");
}
Thread t = new Thread(this);
t.start();
}
boolean isRunning;
int whichframe;
final int SPEED = 4;
int director = 2;
public void run()
{
Graphics g = bufferImage.getGraphics();
while(true)
{
if(isRunning)
{
movePlayer();
}
bufferPaint(g);
repaint();
try
{
Thread.sleep(80);
}
catch(Exception e)
{
}
}
}
public void movePlayer()
{
whichframe++;
switch(director)
{
case 0:playerY -= SPEED;break;
case 1:playerX += SPEED;break;
case 2:playerY += SPEED;break;
case 3:playerX -= SPEED;break;
}
}
public void bufferPaint(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(0, 0, 176, 208);
g.translate(-g.getTranslateX(), - g.getTranslateY());
g.translate(playerX, playerY);
g.setClip(0, 0, 24, 24);
int __w = whichframe % 4;
if(__w == 3)__w = 1;
g.drawImage(playerImage, -24 * __w, -24 * director, 0);
}
public void paint(Graphics g)
{
g.setColor(0);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(255, 0, 0);
g.drawImage(bufferImage, getWidth() - 176 >> 1, getHeight() - 208 >> 1, 0);
}
public void keyPressed(int keyCode)
{
int gA = getGameAction(keyCode);
switch(gA)
{
case UP: director = 0; isRunning = true;break;
case DOWN: director = 2; isRunning = true;break;
case LEFT: director = 3; isRunning = true;break;
case RIGHT: director = 1; isRunning = true;break;
}
}
public void keyReleased(int keyCode)
{
isRunning = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -