📄 mysprite.java
字号:
package com.ejoy;
import java.io.IOException;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
//Download by http://www.codefans.net
public class MySprite extends Sprite {
public int m_spName;//精灵名称
public int hp;//精灵血量
public int spriteWidth;//精灵宽
public int spriteHeight;//精灵高
//各状态下的图片
public Image standimg;
public Image attackimg;
public Image walkimg;
/**
* 精灵类构造函数
* @param img 初始化精灵时的图片
* @param sWidth 初始化精灵时的精灵宽
* @param sHeight 初始化精灵时的精灵高
* @param spName 初始化精灵时的精灵名称
*/
public MySprite(Image img,int sWidth,int sHeight,int spName)
{
super(img,sWidth,sHeight);
try
{
initImageFromStyle(spName);
}catch(IOException e)
{
e.printStackTrace();
}
spriteWidth=sWidth;
spriteHeight=sHeight;
defineReferencePixel(sWidth/2, sHeight/2);
hp=100;
m_spName=spName;
}
/**
* 根据精灵名称初始化相应的状态图片
* @param spName 精灵名称
* @throws IOException 抛出IO异常
*/
public void initImageFromStyle(int spName) throws IOException
{
switch(spName)
{
case ROLE_DC:
standimg=Image.createImage(GameMIDlet.PATH_DC_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_DC_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_DC_ATTACK1);
break;
case ROLE_ZF:
standimg=Image.createImage(GameMIDlet.PATH_ZF_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_ZF_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_ZF_ATTACK1);
break;
case NPC_CB:
standimg=Image.createImage(GameMIDlet.PATH_CB_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_CB_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_CB_ATTACK1);
break;
case NPC_DB:
standimg=Image.createImage(GameMIDlet.PATH_DB_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_DB_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_DB_ATTACK1);
break;
case NPC_TM:
standimg=Image.createImage(GameMIDlet.PATH_TM_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_TM_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_TM_ATTACK1);
break;
case NPC_ZL:
standimg=Image.createImage(GameMIDlet.PATH_ZL_STAND);
walkimg=Image.createImage(GameMIDlet.PATH_ZL_WALK);
attackimg=Image.createImage(GameMIDlet.PATH_ZL_ATTACK1);
break;
}
}
//取得距另一精灵的x距离
public int getXDistanceFromSprite(MySprite sp)
{
return this.getRefPixelX()-sp.getRefPixelX()/*-this.spriteWidth/2-sp.spriteWidth/2*/;
}
//取得距另一精灵的y距离
public int getYDistanceFromSprite(MySprite sp)
{
return this.getRefPixelY()-sp.getRefPixelY()/*-this.spriteHeight/2-sp.spriteHeight/2*/;
}
//切换行走精灵
public void changeToWalkSprite()
{
this.setImage(walkimg, spriteWidth, spriteHeight);
switch(m_spName)
{
case ROLE_DC:
this.setFrameSequence(MySprite.ROLE_DC_WALK_QUENE);
break;
case ROLE_ZF:
this.setFrameSequence(MySprite.ROLE_ZF_WALK_QUENE);
break;
case NPC_ZL:
this.setFrameSequence(MySprite.NPC_ZL_WALK_QUENE);
break;
case NPC_CB:
this.setFrameSequence(MySprite.NPC_CB_WALK_QUENE);
break;
case NPC_DB:
this.setFrameSequence(MySprite.NPC_DB_WALK_QUENE);
break;
case NPC_TM:
this.setFrameSequence(MySprite.NPC_TM_WALK_QUENE);
break;
}
}
//切换攻击精灵
public void changeToAttackSprite()
{
this.setImage(attackimg, spriteWidth, spriteHeight);
switch(m_spName)
{
case ROLE_DC:
this.setFrameSequence(MySprite.ROLE_DC_ATTACK_QUENE);
break;
case ROLE_ZF:
this.setFrameSequence(MySprite.ROLE_ZF_ATTACK_QUENE);
break;
case NPC_ZL:
this.setFrameSequence(MySprite.NPC_ZL_ATTACK_QUENE);
break;
case NPC_CB:
this.setFrameSequence(MySprite.NPC_CB_ATTACK_QUENE);
break;
case NPC_DB:
this.setFrameSequence(MySprite.NPC_DB_ATTACK_QUENE);
break;
case NPC_TM:
this.setFrameSequence(MySprite.NPC_TM_ATTACK_QUENE);
break;
}
}
//恢复站立精灵状态
public void resume()
{
this.setImage(standimg, spriteWidth, spriteHeight);
switch(m_spName)
{
case ROLE_DC:
this.setFrameSequence(MySprite.ROLE_DC_STAND_QUENE);
break;
case ROLE_ZF:
this.setFrameSequence(MySprite.ROLE_ZF_STAND_QUENE);
break;
case NPC_ZL:
this.setFrameSequence(MySprite.NPC_ZL_STAND_QUENE);
break;
case NPC_CB:
this.setFrameSequence(MySprite.NPC_CB_STAND_QUENE);
break;
case NPC_DB:
this.setFrameSequence(MySprite.NPC_DB_STAND_QUENE);
break;
case NPC_TM:
this.setFrameSequence(MySprite.NPC_TM_STAND_QUENE);
break;
}
}
//--------------------------精灵一些控制数据--------------------------------
//--------------------------貂蝉行走时的碰撞区域--------------------------
public final static int DC_WALK_COLLISION_RECT_X=0;
public final static int DC_WALK_COLLISION_RECT_Y=0;
public final static int DC_WALK_COLLISION_RECT_WIDTH=0;
public final static int DC_WALK_COLLISION_RECT_HEIGHT=0;
//--------------------------貂蝉攻击时的碰撞区域--------------------------
public final static int DC_ATTACK_COLLISION_RECT_X=0;
public final static int DC_ATTACK_COLLISION_RECT_Y=0;
public final static int DC_ATTACK_COLLISION_RECT_WIDTH=0;
public final static int DC_ATTACK_COLLISION_RECT_HEIGHT=0;
//-------------------------张辽行走时的碰撞区域-----------------------------
public final static int ZL_WALK_COLLISION_RECT_X=0;
public final static int ZL_WALK_COLLISION_RECT_Y=0;
public final static int ZL_WALK_COLLISION_RECT_WIDTH=0;
public final static int ZL_WALK_COLLISION_RECT_HEIGHT=0;
//-------------------------张辽攻击时碰撞区域-----------------------------
public final static int ZL_ATTACK_COLLISION_RECT_X=0;
public final static int ZL_ATTACK_COLLISION_RECT_Y=0;
public final static int ZL_ATTACK_COLLISION_RECT_WIDTH=0;
public final static int ZL_ATTACK_COLLISION_RECT_HEIGHT=0;
//-------------------------长兵行走时的碰撞区域------------------------------
public final static int CB_WALK_COLLISION_RECT_X=0;
public final static int CB_WALK_COLLISION_RECT_Y=0;
public final static int CB_WALK_COLLISION_RECT_WIDTH=0;
public final static int CB_WALK_COLLISION_RECT_HEIGHT=0;
//-------------------------长兵攻击时的碰撞区域------------------------------
public final static int CB_ATTACK_COLLISION_RECT_X=0;
public final static int CB_ATTACK_COLLISION_RECT_Y=0;
public final static int CB_ATTACK_COLLISION_RECT_WIDTH=0;
public final static int CB_ATTACK_COLLISION_RECT_HEIGHT=0;
//-----------------------短兵行走时的碰撞区域--------------------------------
public final static int DB_WALK_COLLISION_RECT_X=0;
public final static int DB_WALK_COLLISION_RECT_Y=0;
public final static int DB_WALK_COLLISION_RECT_WIDTH=0;
public final static int DB_WALK_COLLISION_RECT_HEIGHT=0;
//-----------------------短兵攻击时的碰撞区域----------------------------------
public final static int DB_ATTACK_COLLISION_RECT_X=0;
public final static int DB_ATTACK_COLLISION_RECT_Y=0;
public final static int DB_ATTACK_COLLISION_RECT_WIDTH=0;
public final static int DB_ATTACK_COLLISION_RECT_HEIGHT=0;
//-----------------------探马行走时的碰撞区域----------------------------------
public final static int TM_WALK_COLLISION_RECT_X=0;
public final static int TM_WALK_COLLISION_RECT_Y=0;
public final static int TM_WALK_COLLISION_RECT_WIDTH=0;
public final static int TM_WALK_COLLISION_RECT_HEIGHT=0;
//----------------------探马攻击时的碰撞区域---------------------------------
public final static int TM_ATTACK_COLLISION_RECT_X=0;
public final static int TM_ATTACK_COLLISION_RECT_Y=0;
public final static int TM_ATTACK_COLLISION_RECT_WIDTH=0;
public final static int TM_ATTACK_COLLISION_RECT_HEIGHT=0;
//------------------------各角色名称--------------------------------------
public final static int ROLE_DC=0;
public final static int ROLE_ZF=1;
public final static int NPC_DB=2;
public final static int NPC_CB=3;
public final static int NPC_TM=4;
public final static int NPC_ZL=5;
//-------------------------各精灵的动作帧--------------------------------
public final static int[] ROLE_DC_STAND_QUENE={0,0,0,1,1,1,2,2,2,3,3,3,4,4,4};
public final static int[] ROLE_DC_WALK_QUENE={1,1,3,3,5,5,0,0,2,2,4,4};
public final static int[] ROLE_DC_ATTACK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] ROLE_ZF_STAND_QUENE={1,1,3,3,5,5,7,7,9,9,0,0,2,2,4,4,6,6,8,8};
public final static int[] ROLE_ZF_WALK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] ROLE_ZF_ATTACK_QUENE={1,1,3,3,5,5,0,0,2,2,4,4};
public final static int[] NPC_DB_WALK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_DB_ATTACK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_DB_STAND_QUENE={0,0,0,1,1,1,2,2,2,3,3,3};
public final static int[] NPC_CB_WALK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_CB_ATTACK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_CB_STAND_QUENE={0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5};
public final static int[] NPC_TM_WALK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_TM_ATTACK_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_TM_STAND_QUENE={0,0,0,1,1,1,2,2,2,3,3,3};
public final static int[] NPC_ZL_STAND_QUENE={1,1,3,3,5,5,7,7,0,0,2,2,4,4,6,6};
public final static int[] NPC_ZL_WALK_QUENE={0,0,1,1,2,2,3,3,4,4,5,5,6,6};
public final static int[] NPC_ZL_ATTACK_QUENE={0,0,1,1,2,2,3,3,4,4};
//-----------------------------各精灵尺寸---------------------------------
public final static int ROLE_DC_SPWIDTH=54;
public final static int ROLE_DC_SPHEIGHT=72;
public final static int ROLE_ZF_SPWIDTH=60;
public final static int ROLE_ZF_SPHEIGHT=108;
public final static int NPC_CB_SPWIDTH=50;
public final static int NPC_CB_SPHEIGHT=75;
public final static int NPC_DB_SPWIDTH=58;
public final static int NPC_DB_SPHEIGHT=112;
public final static int NPC_TM_SPWIDTH=60;
public final static int NPC_TM_SPHEIGHT=108;
public final static int NPC_ZL_SPWIDTH=60;
public final static int NPC_ZL_SPHEIGHT=80;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -