📄 playersprite.java
字号:
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
public class PlayerSprite extends Sprite{
public static final int PLAYER_MM = 0; //孙小美(玩家)
public static final int PLAYER_OIL = 1; //石油大王(电脑)
public static final int PLAYER_TYPE_NUM = 2;
private int m_nMoney; //金钱数
private int m_nCol; //所处位置的列号
private int m_nRow; //所处位置的行号
private int m_nStep; //移动步数
public PlayerSprite( Image image, int frameWidth, int frameHeight){
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
}
//设置金钱数
public void setMoney(int money){
m_nMoney = money;
}
//获取金钱数
public int getMoney(){
return m_nMoney;
}
//设置位置
//参数col、row分别是列号与行号,grid是地图格子对象
public void SetPos( int col, int row, TiledLayer grid){
if( col < 0 || col >= grid.getColumns() )
return;
if( row < 0 || row >= grid.getRows() )
return;
m_nCol = col;
m_nRow = row;
//设置实际显示的位置
int x = col * grid.getCellWidth() + grid.getX();
int y = row * grid.getCellHeight() + grid.getY();
setPosition( x, y);
}
//获取当前所在的列
public int getCol(){
return m_nCol;
}
//获取当前所在的行
public int getRow(){
return m_nRow;
}
//设置移动步数
public void setStep(int step){
m_nStep = step;
}
//获取移动步数
public int getStep(){
return m_nStep;
}
//逻辑操作,产生移动
public void Logic(TiledLayer grid){
if( m_nStep > 0 )
{
//移动人物
MovePlayer(grid);
m_nStep --;
//让CPU休息500毫秒
try{
Thread.sleep(500);
}
catch(InterruptedException ie){
ie.printStackTrace();
}
}
}
//移动任务
private void MovePlayer(TiledLayer grid){
if( m_nRow == 0 )
{//如果在最上边的行
if( m_nCol < grid.getColumns() - 1 )
SetPos( m_nCol + 1, m_nRow, grid );
else
SetPos( m_nCol, m_nRow + 1, grid );
}
else if( m_nRow == grid.getRows() - 1 )
{//如果在最下边的行
if( m_nCol > 0 )
SetPos( m_nCol - 1, m_nRow, grid );
else
SetPos( m_nCol, m_nRow - 1, grid );
}
else if( m_nCol == 0 ) //如果在最左边的列
SetPos( m_nCol, m_nRow - 1, grid );
else //如果在最右边的列
SetPos( m_nCol, m_nRow + 1, grid );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -