📄 fisher.java
字号:
package demo;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
public class Fisher {
private int m_nX; //左上角的X坐标
private int m_nY; //左上角的Y坐标
private Image m_FisherImg; //钓鱼者的图像
private Sprite m_HookSprite; //鱼钩图像
public Fisher(){
try{
m_FisherImg = Image.createImage("/demo/man.png");
Image img = Image.createImage("/demo/hook.png");
m_HookSprite = new Sprite(img, 5, 7);
m_HookSprite.defineReferencePixel(2, 3);
}
catch (Exception ex){}
}
//设置钓鱼者的位置
public void setInitPosition(int x, int y){
m_nX = x;
m_nY = y;
//鱼钩要随着钓鱼者移动
x = x + m_FisherImg.getWidth();
y = y + 20;
m_HookSprite.setRefPixelPosition(x, y);
}
//获取鱼钩对象
public Sprite getHook(){
return m_HookSprite;
}
//处理按键输入
public void Input(int keyStates, int scrWidth){
//左右移动钓鱼者
if( ( keyStates & GameCanvas.LEFT_PRESSED ) != 0 )
m_nX -= 3;
if( ( keyStates & GameCanvas.RIGHT_PRESSED ) != 0 )
m_nX += 3;
if( m_nX < - m_FisherImg.getWidth() )
m_nX = - m_FisherImg.getWidth();
else if( m_nX > scrWidth - m_FisherImg.getWidth() )
m_nX = scrWidth - m_FisherImg.getWidth();
int hookx = m_nX + m_FisherImg.getWidth();
int hooky = m_HookSprite.getRefPixelY();
//上下移动鱼钩
if( ( keyStates & GameCanvas.UP_PRESSED ) != 0 )
hooky -= 3;
if( ( keyStates & GameCanvas.DOWN_PRESSED ) != 0 )
hooky += 3;
if( hooky < m_nY + 20 )
hooky = m_nY + 20;
m_HookSprite.setRefPixelPosition(hookx, hooky);
}
public void Paint(Graphics g){
//显示钓鱼者
g.drawImage(m_FisherImg, m_nX, m_nY, 0);
//显示鱼线
int x = m_nX + m_FisherImg.getWidth();
int y1 = m_nY + 20;
int y2 = m_HookSprite.getY();
g.drawLine( x, y1, x, y2 );
//显示鱼钓
m_HookSprite.paint(g);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -