⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fisher.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 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 + -